Oracle Global Временные таблицы
Вопрос
Я создал глобальную таблицу 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.