|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : novembre 2011 Messages : 15 ![]() |
Bonjour,
je voudrais supprimer d'un coup plusieurs tables, donc je crée une procédure stocckée: create or replace PROCEDURE supall AS BEGIN TRUNCATE TABLE table1; TRUNCATE TABLE table2; TRUNCATE TABLE table3; TRUNCATE TABLE table4; TRUNCATE TABLE table5; TRUNCATE TABLE table 6; TRUNCATE TABLtable7 END supall ; le script est compilé avec l'erreur suivante: Erreur(3,10): PLS-00103: Symbole "TABLE" rencontré à la place d'un des symboles suivants : := . ( @ % ; Mais si je fais le TRUNCATE table par table il ya aucun problème ... Merci pour votre aide |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
TRUNCATE TABLtable7
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 313 ![]() |
Truncate c'est du DDL donc Sql Dynamique.
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Étudiant Inscription : novembre 2011 Messages : 15 ![]() |
non c'est une erreur de ma part,
je fait aussi truncate table table7; end supall; pardon |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Étudiant Inscription : novembre 2011 Messages : 15 ![]() |
en fait, j'utilise sqldevelopper,
je ne comprend pas ou mettre le sql dynamique Merci pour votre réponse |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 313 ![]() |
Code :
|
||
|
|
10
|
|
|
#7 | ||
|
Invité de passage
![]() Étudiant Inscription : novembre 2011 Messages : 15 ![]() |
Bonjour,
Oui merci le code marche parfaitement, mais lorsque j'essaie de l'encapsuler dans une procédure stockée ça me génère une exception : Code :
programme sélectionné n'est pas dans un état valide pour être exécuté, recompilez le programme et réessayez... Donc ma question : est-il possible d'encapsuler un script avec EXECUTE IMMEDIATE dans une procédure ou autre solution possible. Merci pour vos réponses. |
||
|
|
00
|
|
|
#8 | ||
![]() ![]() |
Il faut vérifier les privilèges.
Votre utilisateur qui appelle la procédure doit avoir l'autorisation de le faire. Il s'agit du privilège EXECUTE. Le schéma qui contient la procédure doit avoir l'autorisation d'exécuter le contenu. Pour un truncate table, il s'agit du privilège DROP ANY TABLE. Notez que le contenu du SQL dynamique, de part sa nature dynamique justement, n'est pas vérifié à la compilation. Quelques conseils supplémentaires :
Au final : Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#9 |
|
Invité de passage
![]() Étudiant Inscription : novembre 2011 Messages : 15 ![]() |
oui MERCI BEAUCOUP C'est bon
merci pour votre aide |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com