>데이터 베이스 >MySQL 튜토리얼 >'SELECT * INTO new_table FROM old_table;'이 수행되는 이유는 무엇입니까? Oracle에서 실패하고 어떻게 새 테이블을 올바르게 만들 수 있습니까?

'SELECT * INTO new_table FROM old_table;'이 수행되는 이유는 무엇입니까? Oracle에서 실패하고 어떻게 새 테이블을 올바르게 만들 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-05 10:04:44534검색

Why Does

ELECT INTO Unexpected Mischief in Oracle

SQL 영역에서 SELECT INTO 문은 탁월한 위치를 차지하여 손쉽게 데이터를 추출하고 새로운 대상에 삽입. 그러나 Oracle의 고유한 방언의 맥락에서 이 작업은 놀라운 반전을 드러냅니다.

기존 기대와는 달리 "SELECT * INTO new_table FROM old_table;" 쿼리는 예상치 못한 오류가 발생합니다: "SQL 오류: ORA-00905: 누락된 키워드." 이 예외는 INTO 절에 대한 Oracle의 독특한 해석에서 비롯됩니다.

Oracle의 구현 공개

Oracle은 표준 SELECT INTO 동작에서 벗어나 대체 접근 방식을 선택합니다. 대상 테이블이 이미 존재하는 경우 Oracle은 다음 구문을 준수하여 암시적 INSERT INTO 작업을 실행합니다.

insert into new_table
select * from old_table
/

또는 기존 레코드를 기반으로 새로운 테이블을 생성하기 위해 Oracle은 다음 구문을 사용합니다.

create table new_table as
select * from old_table
/

흥미롭게도 Oracle은 빈 공간을 생성하는 솔루션도 제공합니다. 테이블:

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

기본적으로 false인 조건이 포함된 WHERE 절을 추가함으로써 Oracle은 소스에서 데이터를 복사하지 않고 빈 테이블을 독창적으로 구성합니다.

SELECT INTO에 대한 Oracle의 독특한 접근 방식은 새로운 출발점을 제시합니다. 확립된 표준에 따라 개발자가 고유한 구문과 의미에 적응하도록 유도합니다. 그러나 초기의 놀라움에도 불구하고 이러한 편차는 Oracle의 방대한 데이터베이스 생태계 내에서 데이터 조작에 대한 유연성과 제어를 제공합니다.

위 내용은 'SELECT * INTO new_table FROM old_table;'이 수행되는 이유는 무엇입니까? Oracle에서 실패하고 어떻게 새 테이블을 올바르게 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.