4

私は次のことをしようとしています:

INSERT INTO MyTable(a, b, c)
SELECT a FROM source1
JOIN source2 ON ...

source2 には、列 B と C が含まれています。

しかし、Oracle はこれを好まないようで、「SQL エラー: ORA-00947: 値が不足しています」と言っています。

ここで何か間違ったことをしていますか?この構文は可能ですか?または、次のように書き直す必要がありますか。

SELECT a, b, c FROM source1, source2 WHERE ....

ありがとう!

4

2 に答える 2

11

次のように、INSERT句と同じ数の識別子をSELECT句で使用します。

INSERT INTO MyTable(a, b, c)
SELECT s1.a, s2.b, s2.c FROM source1 s1
  JOIN source2 s2 ON ...
于 2012-07-10T13:20:56.430 に答える
1

INSERTselectは、ステートメントにリストしたのと同じ数の列を返す必要があります。

だから:はい、あなたはクエリをに書き直す必要がありますSELECT a,b,c FROM ...

于 2012-07-10T13:20:51.993 に答える