2

SQLでこれを行うことは可能ですか?

INSERTステートメントを削除すると、SELECTが機能します。挿入がある場合、Oracleは「SELECTキーワードがありません」と文句を言います。

WITH tmpdata AS
(
//SOME arbitrary select statement
)

INSERT INTO myTable (someId, somevalue, someothervalue)
SELECT
 mysequence.nextval,
 tmpData.somevalue,
 tmpData.someothervalue,
FROM
 tmpdata,
 sometabletojoin
WHERE
 tmpdata.somevalue = sometabletojoin.somevaluebutintheothertable
4

1 に答える 1

3

これは機能するはずです:

INSERT INTO myTable (someId, somevalue, someothervalue)
WITH tmpdata AS
(
   ...
)
SELECT ...

説明:WITHそしてSELECT一緒に属します。それらは同じクエリの一部です。したがって、あなたの例では、Oracleは、WITH句を解析した後に(予期しない)INSERTに到達すると、「SELECTが欠落している」と文句を言います。

于 2009-11-19T20:14:57.493 に答える