Plusieurs instructions DDL oracle
Bonjour à tous et a toutes,
Est-ce que les instruction TRUNCATE ou DELETE + INSERT sur la même table fonctionne? dans mon cas ça n'a pas marché, y a-t-il des solutions ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| SELECT COUNT(*) INTO NB FROM DBA_OBJECTS
WHERE OBJECT_TYPE='TABLE'
AND OWNER='user'
AND OBJECT_NAME = 'MATABLE_'||Q||'_'||YEAR||'';
IF NB<>0 THEN
EXECUTE IMMEDIATE ('TRUNCATE TABLE MATABLE_'||Q||'_'||YEAR);
COMMIT;
EXECUTE IMMEDIATE ('INSERT INTO MATABLE_'||Q||'_'||YEAR||' AS SELECT * FROM TABLE_GLOBALE ');
COMMIT;
ELSE
EXECUTE IMMEDIATE ('CREATE TABLE MATABLE_'||Q||'_'||YEAR||' AS SELECT * FROM TABLE_GLOBALE ');
COMMIT;
END IF; |
Dans mon cas lorsque NB = 0 l'instruction EXECUTE IMMEDIATE ('CREATE TABLE ... est exécutée normale sans souci, mais dans le cas ou NB <> 0 seulement la première instruction sera exécutée !!