为什么我们必须在'INSERT ALL'后进行SELECT?

时间:2010-07-01 09:51:27

标签: sql oracle

正如我在许多网站上看到的那样,如果我想制作INSERT ALL,我必须使用SELECT (Like SELECT * FROM dual;)

完成

为什么?

2 个答案:

答案 0 :(得分:5)

根据INSERT ALL的语法,子查询是必需的(参见http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9014.htm#i2111652

对子查询返回的每一行(即SELECT语句)执行insert子句。 SELECT * FROM dual返回一行,因此insert_clause(s)执行一次(当你想插入一组硬编码值时这很有用)

答案 1 :(得分:0)

作为shown in the documentation,INSERT ALL synthax需要一个子查询:你不能拥有INSERT ALL [...] VALUES [...]

我怀疑SELECT中的SELECT是一种在多个表上多行插入一行的方法。