ci-dessous est le proc stocké je l'ai écrit:ORACLE: pouvons-nous créer des tables temporaires globales ou des tables dans proc stocké?
create or replace procedure test005
as
begin
CREATE GLOBAL TEMPORARY TABLE TEMP_TRAN
(
COL1 NUMBER(9),
COL2 VARCHAR2(30),
COL3 DATE
) ON COMMIT PRESERVE ROWS
/
INSERT INTO TEMP_TRAN VALUES(1,'D',sysdate);
INSERT INTO TEMP_TRAN VALUES(2,'I',sysdate);
INSERT INTO TEMP_TRAN VALUES(3,'s',sysdate);
COMMIT;
end;
quand je l'exécutaient, je reçois un message d'erreur mentionnant:
create or replace procedure test005
as
begin
CREATE GLOBAL TEMPORARY TABLE TEMP_TRAN
(
COL1 NUMBER(9),
COL2 VARCHAR2(30),
COL3 DATE
) ON COMMIT PRESERVE ROWS
/
INSERT INTO TEMP_TRAN VALUES(1,'D',sysdate);
INSERT INTO TEMP_TRAN VALUES(2,'I',sysdate);
INSERT INTO TEMP_TRAN VALUES(3,'s',sysdate);
COMMIT;
end;
Error at line 1
ORA-00955: name is already used by an existing object
Script Terminated on line 1.
J'ai essayé de laisser tomber le TEMP_TRAN et il dit la table n'existe pas . Il n'y a donc pas de table TEMP_TRAN dans le système. pourquoi ai-je cette erreur? J'utilise TOAD pour créer ce proc stocké.
Toute aide serait grandement appréciée.
Ce script ne crée pas une procédure stockée valide, vous ne pouvez donc pas l'exécuter. Vous pouvez exécuter le script, mais il échouera à créer une procédure valide que vous pouvez exécuter. –