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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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...