Отличие временной таблицы ОN COMMIT PRESERVE ROWS от временной таблицы ОN COMMIT DELETE ROWS
Создаем
две таблицы
ON COMMIT PRESERVE ROWS
CREATE GLOBAL TEMPORARY TABLE
scott.tmp_pre_rows
(
ID NUMBER(32)
) ON COMMIT PRESERVE ROWS;
ОN COMMIT DELETE ROWS
CREATE GLOBAL TEMPORARY TABLE
scott.tmp_del_rows
(
ID NUMBER(32)
) ON COMMIT DELETE ROWS;
Добавляем
данные в созданные таблицы
INSERT INTO
scott.tmp_del_rows (ID) VALUES (1);
INSERT INTO
scott.tmp_del_rows (ID) VALUES (2);
INSERT INTO
scott.tmp_del_rows (ID) VALUES (3);
INSERT INTO
scott.tmp_pre_rows (ID) VALUES (1);
INSERT INTO
scott.tmp_pre_rows (ID) VALUES (2);
INSERT INTO
scott.tmp_pre_rows (ID) VALUES (3);
Смотрим
SELECT * FROM scott.tmp_pre_rows;
Реультат
запроса
--
1
2
3
SELECT * FROM scott.tmp_del_rows;
Результат запроса
--
1
2
3
Выполняем команду COMMIT после чего вновь выполняем запросы
SELECT * FROM SCOTT.TMP_PRE_ROWS;
Результат
запроса
--
1
2
3
SELECT * FROM SCOTT.TMP_DEL_ROWS;
Результат запроса
--
Итак, данные в таблице
ОN COMMIT DELETE ROWS не сохраняются после выполнения команды COMMIT, в отличие от
временной таблицы ON COMMIT PRESERVE ROWS
Итог: после прочтения
данного материала становиться понятно следующее:
• что такое временные таблицы в ORACLE
• назначение временных таблиц
• область применения временных таблиц в ORACLE
• ограничения для временных таблиц
• отличие временных таблиц от регулярных таблиц
отличие временных таблиц с
данными уровня сессии от временных таблиц с данными уровня транзакции (ON COMMIT PRESERVE ROWS, ОN COMMIT DELETE ROWS).
|