|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : août 2006 Messages : 31 ![]() |
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 :
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 |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 453 ![]() |
Ajoute un DMBS_OUTPUT avant le execute immediate et donne le résultat.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 31 ![]() |
|
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
de la chaine de caractère envoyée à EXECUTE IMMEDIATE évidemment
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 31 ![]() |
haa !! ok ! ben heu => rename matable TO old_matable
J'en suis sur car j'utilisais justement un DBMS_OUTPUT.PUT_LINE(SubStr(REQSQL,0,255)); que je n'ai pas mis dans le code de mon premier post pour pas alourdir. Mais en fait j'ai trouvé la raison du problème : Il me manquait des droits sur le user utilisé. Ce qui est un peu bizarre car les droits m'autorisaient la destruction d'une table (DROP TABLE), mais pas de renommer (RENAME) ni de créer une nouvelle table (CREATE). Merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com