Execute immediate truncate table
Bonjour,
Je rencontre un problème dans un bloc PL/SQL dans lequel je réalise un TRUNCATE de plusieurs tables. J'ai un curseur qui contient le nom de mes tables et je fais une boucle for pour le parcourir et tronquer toutes les tables contenues dans mon curseur.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| DECLARE
CURSOR c IS SELECT owner, table_name
FROM dba_tables
WHERE TABLE_NAME IN ('TOTO','TATA', 'TITI')
AND owner IN ('BCDM_CH','BCDM_DMT');
BEGIN
FOR rec in c
LOOP
EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || rec.owner || '.' || rec.table_name || ' CASCADE CONSTRAINTS';/
END LOOP;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Une erreur est survenue : ' || SQLCODE);
END;
/ |
Mais je rencontre à chaque fois cette erreur :
Code:
1 2
| Une erreur est survenue : -3291 ORA-03291: Invalid truncate option - missing
STORAGE keyword |
Il me tronque bien les deux première tables... Je ne comprends pas à quoi correspond cette erreur...