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