4

我在 oracle SQL 中使用多行插入语法,如下所示:

INSERT ALL
  INTO student(ID, FIRST_NAME, LAST_NAME, AGE)  VALUES(4,'test_name','test_lname',17)
  INTO student(ID, FIRST_NAME, LAST_NAME, AGE)  VALUES(5,'test_name2','test_lname2',20)
  INTO student(ID, FIRST_NAME, LAST_NAME, AGE)  VALUES(6,'test_name3','test_lname3',21)
  select * from dual;

谁能解释一下使用是什么意思

从双重选择 *

在和声明?

4

3 回答 3

6

它的语法INSERT ALL

INSERT ALL
INTO <table_name> VALUES <column_name_list)
INTO <table_name> VALUES <column_name_list)
...
<SELECT Statement>;

如果在插入后没有要选择的内容,请执行select * from dual

否则你做你的选择,你通常想要确认插入成功

参考

于 2012-06-03T08:27:46.663 回答
4

DUAL 表是一种特殊的单行表,默认情况下出现在所有 Oracle 数据库安装中。它适用于选择伪列,例如 SYSDATE 或 USER。该表有一个名为 DUMMY 的 VARCHAR2(1) 列,其值为“X”。

更多关于这里这里的信息。

于 2012-06-03T08:25:25.040 回答
0

insert all 可用于将数据从 select 语句插入到另一个表在您的示例中,您已经提供了要插入的值,这就是您需要执行 select * from dual 以触发插入的原因。

http://jzab.blogspot.com/2013/05/oracle-insert-multiple-rows-with-single.html

于 2013-08-09T16:30:58.017 回答