Я пытаюсь сделать SELECT INTO с помощью Oracle. Мой запрос:
SELECT * INTO new_table FROM old_table;
Но я получаю следующую ошибку:
SQL Error: ORA-00905: missing keyword
00905. 00000 - "missing keyword"
Любые идеи, что неправильно?
Стандартное поведение выше должно быть таким, как я изначально думал: Однако Oracle внедрил это совершенно по-другому в своем собственном диалекте SQL Oracle Docs on Insert... Выбрать
Если NEW_TABLE уже существует, то...
insert into new_table select * from old_table
/
Если вы хотите создать NEW_TABLE на основе записей в OLD_TABLE...
create table new_table as select * from old_table
/
select into
используется в pl/sql для установки переменной в значения полей. Вместо этого используйте
create table new_table as select * from old_table
select into
является частью пл / sql. Это язык для написания хранимых процедур и не имеет прямого отношения к стандарту SQL. И да, Oracle сделал много вещей, которые никогда не были частью стандарта =)
Использование:
create table new_table_name
as
select column_name,[more columns] from Existed_table;
Пример:
create table dept
as
select empno, ename from emp;
Если таблица уже существует:
insert into new_tablename select columns_list from Existed_table;
select into
чтобы создать новую таблицу не является частью стандарта. Стандарт SQL для создания таблицы на основе выбора -create table .. as select ...
В стандарте SQLSELECT INTO
определен для чтения значения столбца в переменную на языке программирования.