Выберите на вставке - PullRequest
       23

Выберите на вставке

0 голосов
/ 19 сентября 2019

У меня есть запрос относительно базы данных Oracle SQL.

Мы вставляем 1 миллион записей в БД, используя один оператор вставки (в сочетании с оператором select).

INSERT INTO <TABLE_NAME> VALUES(<COL1,COL2,COL3>,....etc)
SELECT * FROM <TABLE_NAME> // this select query retrieves 1 million records

После выполненияиз вставки, есть ли способ вернуть все записи?

По сути, я не хочу выполнять другой оператор выбора для извлечения этих записей.Вместо этого я пытаюсь найти оптимизированный способ.

1 Ответ

0 голосов
/ 19 сентября 2019

Сначала я бы запустил оператор select, чтобы создать личную временную таблицу.Это создает таблицу в памяти и фактически не запускается на диск.

CREATE PRIVATE TEMPORARY TABLE TEMP_TABLE as
SELECT * FROM <TABLE_NAME> // this select query retrieves 1 million records

Затем запустите вставку из временной таблицы.Это записывает данные только один раз в нужное место.И данные все еще доступны для использования во временной таблице для использования в сеансе.Когда сеанс закрыт, данные во временной таблице больше не доступны.

...