[Oracle 10.2] Erreur -14552 opération DDL, COMMIT ou ROLLBACK interdite dans DML
Bonjour,
J'ai une erreur dasn un fonction stockée :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| CREATE OR REPLACE
FUNCTION DEBUG (
debut IN DATE,
fin IN DATE,
) RETURN PLS_INTEGER
BEGIN
FOR c IN (
SELECT owner, table_name, constraint_name
FROM all_constraints
WHERE constraint_type = 'R'
AND lower(table_name) IN ('a', 'b', 'c')
) LOOP
EXECUTE IMMEDIATE 'ALTER TABLE ' || contrainte.owner || '.' || contrainte.table_name || ' DISABLE CONSTRAINT ' || contrainte.constraint_name ;
END LOOP;
END DEBUG |
J'ai l'erreur ;
Code:
Erreur -14552 : ORA-14552: opération DDL, COMMIT ou ROLLBACK interdite dans une instruction DML ou une interrogation
Si je met en commentaire la ligne EXECUTE IMMEDIATE, je n'ai pas de problème.Merci pour votre aide.