Bonjour,
Dans une procédure stockée, je crée un table temporaire avec execute immediate. Ca fonctionne :
Ensuite j'effectue des insert et des select, ca fonctionne toujours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 select trunc(dbms_random.value(1,10000000)) num into tblRef from dual; request := 'CREATE GLOBAL TEMPORARY TABLE NC_TEMP_DIAG_CODE_' || tblRef ||' ('; request := request || 'ncDiagCode VARCHAR2(20), '; request := request || 'ncMotif VARCHAR2(60), '; request := request || 'ncSousMotif VARCHAR2(60), '; request := request || 'ncActionType VARCHAR2(30), '; request := request || 'swDateCreated VARCHAR2(10), '; request := request || 'ncDiagCodeId NUMBER(15,5) '; request := request || ') ON COMMIT PRESERVE ROWS'; execute immediate request;
Enfin, je la supprime:
Et là, ca ne fonctionne pas. La procédure stockée se plante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3request := 'DROP TABLE NC_TEMP_DIAG_CODE_' || tblRef ; execute immediate request;
J'ai même essayé de rajouter CASCADE CONSTRAINTS, ca ne marche toujours pas.
Je ne vois pas d'où viens le problème...je sèche...
Par avance merci de votre aide !
Greg
Partager