Execute immediate et rename de table
Bonjour,
J'ai un problème avec la fonction execute immediate.
Sans vouloir trop entrer dans les détails, j'ai créé une procédure qui stock dans une table(tmp_part) un ensemble de requête SQL à exécuter.
J'ouvre un curseur sur la table ou sont sauvegardées toutes les requêtes, puis je les exécutes une par une :
Code:
1 2 3 4 5 6 7 8 9
|
REQ := 'SELECT REQSQL FROM TMP_PART';
OPEN CCRS FOR REQ; -- EXECUTE LA REQUETE
LOOP
FETCH CCRS INTO REQSQL; -- BASCULE LES DONNÉES DE LA REQUETE DANS LES VALEURS DÉCLARÉS
EXIT WHEN CCRS%NOTFOUND;
EXECUTE IMMEDIATE REQSQL;
COMMIT;
END LOOP; |
Une de ces requêtes est "rename matable to manouvelletable" (stocké dans REQSQL voir code ci-dessus)
Il n'y a aucun crash sur le Execute immediate de REQSQL contenant le rename, mais en fait la table n'est absolument pas renommé. Du coup les requêtes suivante crash.
N'est-il pas possible de faire un rename via execute immediate ? Si non, ai-je une alternative a cette fonction ?
Merci
Edit : hop hop hop vite vite avant de me faire gronder !! Ma version d'oracle : Oracle 9.2.0.1