Проверьте, существует ли временная таблица - PullRequest
1 голос
/ 16 ноября 2011

Как проверить, существует ли временная таблица Oracle? Я не вижу таблицу при запросе ALL_TABLES или USER_TABLES, когда знаю, что она существует.

Кроме того, чтобы убедиться, что я понимаю временные таблицы, если они создаются с помощью ON COMMIT DELETE ROWS, таблица всегда будет существовать, но данные будут удалены после завершения сеанса? Сессия имеет в виду, когда соединение закрыто?

1 Ответ

6 голосов
/ 16 ноября 2011

Временная таблица будет указана в USER_TABLES, если она у вас есть, и в ALL_TABLES, если у вас есть привилегии для этой таблицы.Он будет указан в DBA_TABLES, если он существует в базе данных, но у вас нет прав для запроса DBA_TABLES.Если таблица существует в базе данных, но не в ALL_TABLES, это означает, что текущий пользователь не имеет привилегий для временной таблицы.

Да, временная таблица всегда будет существовать (после ее создания)., конечно).Если вы укажете ON COMMIT DELETE ROWS, данные во временной таблице будут удалены после завершения транзакции (фиксация или откат).Каждый сеанс всегда будет видеть только данные, которые он вставил в таблицу, но когда вы укажете ON COMMIT DELETE ROWS, вы дополнительно ограничите время, в течение которого данные существуют, для текущей транзакции.

...