[sql] Oracle을 사용하여 선택

Oracle을 사용하여 SELECT INTO를 수행하려고합니다. 내 질문은 :

SELECT * INTO new_table FROM old_table;

그러나 다음과 같은 오류가 발생합니다.

SQL Error: ORA-00905: missing keyword
00905. 00000 -  "missing keyword"

어떤 생각이 잘못 되었나요?


위의 표준 동작은 원래 생각했던대로해야합니다. 그러나 Oracle 은 삽입시 SQL Oracle Docs 의 자체 방언에서 완전히 다르게 구현했습니다
.



답변

NEW_TABLE이 이미 존재하면 …

insert into new_table
select * from old_table
/

OLD_TABLE의 레코드를 기반으로 NEW_TABLE을 작성하려는 경우 …

create table new_table as
select * from old_table
/

새이지만 빈 테이블을 작성하는 것이 목적이라면 절대로 절대로 참일 수없는 조건으로 WHERE 절을 사용하십시오.

create table new_table as
select * from old_table
where 1 = 2
/

CREATE TABLE … AS SELECT는 소스 테이블과 동일한 투영을 가진 테이블 만 작성합니다. 새 테이블에는 원래 테이블에있을 수있는 제약 조건, 트리거 또는 인덱스가 없습니다. 여전히 수동으로 추가해야합니다 (필요한 경우).


답변

select intopl / sql에서 변수를 필드 값으로 설정하는 데 사용됩니다. 대신에

create table new_table as select * from old_table


답변

사용하다:

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;


답변