151

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

SELECT * INTO new_table FROM old_table;

しかし、次のエラーが表示されます。

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

何が問題なのですか?


上記の標準的な動作は、私が最初に考えたとおりである必要があります

4

3 に答える 3

303

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

于 2010-02-12T07:22:53.170 に答える
34

select into変数をフィールド値に設定するためにpl/sqlで使用されます。代わりに、

create table new_table as select * from old_table
于 2010-02-12T07:17:34.387 に答える