Взять данные из глобальной временной таблицы, в которой есть команда "Применить удаление строк"
У меня есть функция sql с именем TEST_FUNCTION, которая при вызове отправляет данные в глобальную временную таблицу с именем GLOBAL_TEMP. Когда я вызываю функцию, она возвращает строку "SUCCESS", если данные размещены в таблице GLOBAL_TEMP. Затем, когда я выбираю данные из таблицы GLOBAL_TEMP, он не дает никаких данных. Как я знаю, мне нужно сохранить тот же сеанс, который использовался для вызова функции TEST_FUNCTION для доступа к данным из таблицы GLOBAL_TEMP, так как она была создана с помощью команды коммита удаления строк.
Мой вопрос: как мне справиться с этим в Java-коде?(Сохранить тот же сеанс ORACLE в Java для доступа к данным)
1 ответ
ON COMMIT DELETE ROWS означает именно это. Данные видны только в пределах одной транзакции, и всякий раз, когда данные COMMIT, таблица усекается.
Чтобы прочитать данные, вам необходимо убедиться, что нет никаких промежуточных коммитов и что вы используете тот же сеанс.
Проверьте свой код, а также проверьте настройки JDBC, чтобы он не выполнялся автоматически после каждого оператора.
Также имейте в виду, что любое выражение DDL будет принудительно совершать коммит.