【问题标题】:multiple row insert in Oracle SQLOracle SQL 中的多行插入
【发布时间】:2013-08-10 00:30:58
【问题描述】:

我在 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;

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

从对偶中选择 *

at the and of 语句?

【问题讨论】:

    标签: sql oracle oracle11g


    【解决方案1】:

    INSERT ALL 的语法

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

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

    否则,您通常要进行选择以确认插入成功

    reference

    【讨论】:

    • @Davit khaburdzania 你的问题是在插入语句末尾使用select * from dual 的含义是什么,而不是select * from dual 是什么?!我觉得我的回答适合你的问题!对吗?
    • 是的,我的问题是使用 select * from dual 是什么意思。如果使用 insert all 的语法是这样,我就明白了。但是为什么我总是要在插入东西后选择一些东西呢?
    • 因为使用它的语法需要选择一些东西,如果你不想选择一些东西,你必须select * from dual,它会返回一个空行,它就是这样!
    【解决方案2】:

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

    更多关于 herehere 的信息。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-15
        • 2020-05-16
        • 1970-01-01
        • 1970-01-01
        • 2010-10-27
        • 2020-09-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多