Oracle 插入多行记录

Posted pandora2050

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 插入多行记录相关的知识,希望对你有一定的参考价值。

 

在Oracle 中插入多行,显然不可以用下面的方法:

insert into sys_defect (DEFECT_ID,DEFECT_CODE,DEFECT_LEVEL,DEFECT_DESC,UPDATE_USERID,UPDATE_TIME,SYS_DEFECT.ENABLED,DEFECT_TYPE,CODE_LEVEL,PARENT_DEFECT_ID)
values
(‘10001408‘,‘Get3KK05‘,‘0‘,‘執行AWB失敗‘,‘10017656‘,sysdate,‘Y‘,‘CM‘,‘0‘,‘0‘),
(‘10001409‘,‘Get3KK06‘,‘0‘,‘補償AWB異常‘,‘10017656‘,sysdate,‘Y‘,‘CM‘,‘0‘,‘0‘),
(‘10001410‘,‘Get3KK07‘,‘0‘,‘BIN檔異常‘,‘10017656‘,sysdate,‘Y‘,‘CM‘,‘0‘,‘0‘),
(‘10001411‘,‘Get3KK08‘,‘0‘,‘OTP已燒錄‘,‘10017656‘,sysdate,‘Y‘,‘CM‘,‘0‘,‘0‘)

但可以借助union all实现如下:

insert into sys_defect (DEFECT_ID,DEFECT_CODE,DEFECT_LEVEL,DEFECT_DESC,UPDATE_USERID,UPDATE_TIME,SYS_DEFECT.ENABLED,DEFECT_TYPE,CODE_LEVEL,PARENT_DEFECT_ID)
select ‘10001408‘,‘Get3KK05‘,‘0‘,‘執行AWB失敗‘,‘10017656‘,sysdate,‘Y‘,‘CM‘,‘0‘,‘0‘ from dual union all
select ‘10001409‘,‘Get3KK06‘,‘0‘,‘補償AWB異常‘,‘10017656‘,sysdate,‘Y‘,‘CM‘,‘0‘,‘0‘ from dual union all
select ‘10001410‘,‘Get3KK07‘,‘0‘,‘BIN檔異常‘,‘10017656‘,sysdate,‘Y‘,‘CM‘,‘0‘,‘0‘ from dual union all
select ‘10001411‘,‘Get3KK08‘,‘0‘,‘OTP已燒錄‘,‘10017656‘,sysdate,‘Y‘,‘CM‘,‘0‘,‘0‘ from dual

 

以上是关于Oracle 插入多行记录的主要内容,如果未能解决你的问题,请参考以下文章

plsql:从选择中插入多行并忽略重复项

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

Oracle SQL插入多行并返回一些东西

使用 PHP 将多行 Oracle 结果集插入 MYSQL

如何使用序列值将多行插入到 oracle 中?

如何使用一个插入语句将多行插入到 oracle 数据库中? [复制]