Question

J'ai créé la table temporaire globale. quand j'exécute le code en tant que scripts individuels, il fonctionne très bien. mais quand je l'exécute comme un seul script dans TOAD aucun dossier a été créé. il y avait juste une table temporaire globale vide.

par exemple.

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;

Quand je lance le code ci-dessus une instruction à la fois, il fonctionne très bien. Mais quand je l'exécute comme un script, il fonctionne très bien, mais il n'y avait pas d'enregistrements dans la table temporaire.

Quelqu'un peut-il me aider sur ce s'il vous plaît?

Était-ce utile?

La solution

puisque vous ON COMMIT PRESERVE ROWS dit explicitement, la seule raison pour laquelle les lignes semblent « disparaître » est que TOAD utilise plus d'une session (c.-à-vous exécuter le script avec la session A et interrogation de la table avec Session B - qui verrait une table vide).

Je ne l'utilise beaucoup de crapaud, mais je sais que vous pouvez ouvrir plusieurs sessions indépendantes avec cet outil.

Qu'est-ce qui se passe si vous mettez la SELECT * FROM TEMP_TRAN; de requête à la fin de votre script immédiatement après la validation?

Autres conseils

Parfois, vous aurez besoin de rafraîchir l'affichage des données dans Toad afin qu'il montre les changements au sein de la table sous les données tabpage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top