EXECUTE IMMEDIATE avec CREATE puis INSERT
Bonjour,
Je dois faire un script de migration incluant quelques règles de gestion. Ce script doit recevoir en paramètre les critères d'extraction des données et inclure la création d'une table temporaire de traitement.
En version allégée, cela donne :
Code:
1 2 3 4 5 6 7
| BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE tmp AS SELECT * FROM table WHERE 1=2'
chr_requete := 'INSERT INTO tmp SELECT * FROM table WHERE col1=:1 AND col2=:2';
EXECUTE IMMEDIATE chr_requete USING param1, param2;
END;
/ |
Cela marche mais je ne comprends pas pourquoi je dois également encapsuler le INSERT dans un EXECUTE IMMEDIATE.
Je voulais tracer un COUNT(*) sur la table TMP et ca ne marche pas non plus en direct. Il faut l'encapsuler aussi.
Quelqu'un peut-il éclairer ma lanterne ?
Merci