Вопрос

Я создал глобальную таблицу TEMP. Когда я выполняю код как отдельные сценарии, он работает нормально. Но когда я выполняю его как один скрипт в жабе, то запись не создана. Там была просто пустая глобальная таблица TEMP.

например.

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;

Когда я запускаю вышеуказанный код один оператор за раз, когда он работает нормально. Но когда я выполняю его как скрипт, он работает нормально, но в таблице Temp не было никаких записей.

Может кто-нибудь помочь мне на это, пожалуйста?

Это было полезно?

Решение

Так как вы явно заявили ON COMMIT PRESERVE ROWS, Единственная причина, по которой строки, похоже, «исчезают», так это то, что TOAD использует более одного сеанса (т.е. вы выполняете сценарий с сеансом A и запрашивая таблицу с сеансом B - что увидит пустую таблицу).

Я не использую Toad много, но я знаю, что вы можете открыть несколько независимых сессий с этим инструментом.

Что произойдет, если вы поместите запрос SELECT * FROM TEMP_TRAN; В конце вашего сценария сразу после совершения?

Другие советы

Иногда вам нужно будет обновить отображение данных в Toad так, чтобы он показал изменения в таблице под данными TabPage.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top