[10g] Execute immediate, explain plan et bind variables
Bonjour,
j'ai un problème avec l'explain plan dans une procédure PL/SQL. J'exécute l'explain avec un EXECUTE IMMEDIATE et je tente d'utiliser des variables bindés. Or cela ne fonctionne pas car la requête n'est pas du texte entre guillemets mais doit être accolée telle quelle au "FOR". Je dois donc réaliser mon explain plan ainsi :
Code:
1 2
| EXECUTE immediate 'delete from plan_table where statement_id=:a' using query_id;
EXECUTE immediate 'explain plan set statement_id='''||query_id||''' FOR '||query; |
Autant la première ligne fonctionne bien, autant la seconde m'oblige à piper mes variables, ce qui me pose un gros problème pour l'aspect injection SQL.
L'idéal serait en fait de pouvoir appeler l'explain plan sans utiliser la commande "EXPLAIN PLAN" mais plutôt un package Oracle qui prendrait en paramètre le statement id et la requête mais je n'ai pas trouvé.
Quelqu'un a-t-il des informations sur ce sujet soit pour arriver à utiliser les variables bindées, soit pour exécuter l'explain plan différement ?
Merci.