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 ...

解释:WITHSELECT属于一起;它们是同一查询的一部分。因此,在您的示例中,Oracle 在解析 WITH 子句后到达(意外)INSERT 时抱怨“缺少 SELECT”。

于 2009-11-19T20:14:57.493 回答