Создание новой таблицы с помощью SELECT INTO в SQL

Возможный дубликат:
ВЫБРАТЬ INTO с помощью Oracle

Я столкнулся с оператором SQL SELECT INTO для создания новой таблицы, а также для сброса старых записей таблицы в новую таблицу в одном операторе SQL как

  SELECT * INTO NEW_TABLE FROM OLD_TABLE;

Но когда я пытаюсь выполнить вышеуказанный запрос, он выдает ошибку как ORA-00905: missing keyword

Возможно ли это сделать в ORACLE?

Спасибо.


person Aspirant    schedule 09.08.2012    source источник


Ответы (1)


Синтаксис для создания новой таблицы:

CREATE TABLE new_table
AS
SELECT *
  FROM old_table

Это создаст новую таблицу с именем new_table с любыми столбцами в old_table и скопирует данные. Он не будет реплицировать ограничения в таблице, он не будет реплицировать атрибуты хранилища и он не будет реплицировать какие-либо триггеры, определенные в таблице.

SELECT INTO используется в PL / SQL, когда вы хотите получить данные из таблицы в локальную переменную в вашем блоке PL / SQL.

person Justin Cave    schedule 09.08.2012
comment
Для полноты картины: create table as .. является стандартным SQL и поддерживается почти всеми СУБД. Даже некоторые из тех, которые используют SELECT INTO для создания новых таблиц. - person a_horse_with_no_name; 10.08.2012
comment
Не работает в SQL Server Management Studio. - person Doug Hauf; 02.05.2014