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