如何在oracle 11g中使用一个INSERT语句在一列中插入多行[重复]

Posted

技术标签:

【中文标题】如何在oracle 11g中使用一个INSERT语句在一列中插入多行[重复]【英文标题】:How to insert multiple rows in one column using one INSERT statement in oracle 11g [duplicate] 【发布时间】:2019-09-22 07:41:21 【问题描述】:

我正在尝试这个查询,但它不起作用

insert into REGIONS(region_name) values ('SOUTH_AFRICA') , ('NORTH_AFRICA');

【问题讨论】:

它应该如下插入 REGIONS(region_name) 值('SOUTH_AFRICA');插入 REGIONS(region_name) 值 ('NORTH_AFRICA'); 我知道,但我只需要使用一个 INSERT 语句 奇怪的是 Oracle 不支持这种语法。 @JacobH 不幸的是 11g 不支持它 【参考方案1】:

您可以将INSERT INTOSELECT 一起使用,如下所示:

INSERT INTO REGIONS (region_name) 
SELECT 'SOUTH_AFRICA' FROM DUAL
UNION
SELECT 'NORTH_AFRICA' FROM DUAL

【讨论】:

" 第 3 行出现错误:ORA-00923: FROM 关键字未在预期位置找到" 我收到了这个错误信息 它不起作用,“FROM 关键字未在预期的位置找到” @ToqaYousri 你能尝试更新答案吗 似乎您有一个名为REGION_ID 的非空列,因此它不允许插入。您可以在insert into 中包含该列,并在select 中添加相同的值

以上是关于如何在oracle 11g中使用一个INSERT语句在一列中插入多行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

INSERT INTO table RETURNING 触发器生成的主键从 SQL Server 链接服务器到 Oracle (11g)

Oracle 11g - 插入多行的最有效方式

『ORACLE』 PLSQL游标的使用(11g)

使用 Oracle Insert Into...Values 插入多个值

Oracle 11g 代码上的 PL/SQL 是在执行存储过程时

Oracle - 如何使用 varchar 类型创建自动增量列?