Oracleを使用したSELECT INTO 質問する

Oracleを使用したSELECT INTO 質問する

Oracle を使用して SELECT INTO を実行しようとしています。クエリは次のとおりです。

SELECT * INTO new_table FROM old_table;

しかし、次のエラーが発生します。

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

何が問題なのか分かりますか?


上記の標準的な動作は、私が当初考えていた通りであるはずです。しかし、Oracleは独自のSQL方言でそれをまったく異なる方法で実装しました。挿入に関するOracleドキュメント...選択

ベストアンサー1

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 は、ソース テーブルと同じ投影を持つテーブルのみを作成することに注意してください。新しいテーブルには、元のテーブルにある可能性のある制約、トリガー、またはインデックスはありません。それらは手動で追加する必要があります (必要な場合)。

おすすめ記事