oracle的批量插入sql
insert into persons
(id_p, lastname , firstName, city )
values
(200,'haha' , 'deng' , 'shenzhen'),
(201,'haha2' , 'deng' , 'GD'),
(202,'haha3' , 'deng' , 'Beijing'); 这是mysql的插入语句。
但是我们在oracle中是报错的,语句l

那怎么办呢
也许熟悉oracle数据库的可能知道从oracle9i版本以后,可以使用一种方法即:
"INSERT ALL INTO a表
VALUES(各个值)
INTO a表 VALUES (其它值)
INTO a表 VALUES(其它值) .... 再跟一个SELECT 语句"。
例如
INSERT
ALL
INTO
d5000.ac_terminal_connect_info
(
id ,
feeder_id,
esn ,
name ,
description
)
VALUES
(
(
select
id
from
d5000.dms_terminal_info
where
esn_id = '025BHN6RJB504521' limit 1
)
,
(
select
feeder_id
from
d5000.dms_terminal_info
where
esn_id = '025BHN6RJB504521' limit 1
)
,
'025BHN6RJB504521',
'大厂地税局TTU-华为六合管理' ,
''
)
INTO
d5000.ac_terminal_connect_info
(
id ,
feeder_id,
esn ,
name ,
description
)
VALUES
(
(
select
id
from
d5000.dms_terminal_info
where
esn_id = '025BHN6RJB503985' limit 1
)
,
(
select
feeder_id
from
d5000.dms_terminal_info
where
esn_id = '025BHN6RJB503985' limit 1
)
,
'025BHN6RJB503985' ,
'淳溪东甘#3配变TTU-华为高淳管理',
''
)
SELECT 1 FROM DUAL
这样就可以啦!显示两条插入成功过。
后边跟的SELECT 语句我们可以从虚拟表里查如 SELECT 1 FROM DUAL。注意后边跟的SELECT语句可以随意,不过不是把它SELECT出来的内容插入前边的表里,而是起到前边的多个数据每次插入多少行的作用,这个多少行是和后边跟的SELECT语句查出来几条而定的,如后边的跟的SELECT 语句查出了15条记录,那么前边的"INSERT ALL INTO a表 VALUES(各个值1) INTO a表 VALUES (其它值2) INTO a表 VALUES(其它值3)"就会先插入值1对应的各个字段插入15条记录,然后插入值2各个对应的字段15条记录,然后插入值3对应的各个字段15条记录,也就是说有点按列插入的意思。
我们要的是批量插入多个VALUES这样的一条记录,所以后边的SELECT 语句只要能查出一条记录就行,建议大家后边用SELECT 1 FROM DUAL。
oracle的批量插入sql的更多相关文章
- MySQL、Oracle批量插入SQL的通用写法
举个例子: 现在要批量新增User对象到数据库USER表中 public class User{ //姓名 private String name; //年龄 private Integer age; ...
- oracle+mybatis批量插入踩坑记
最近在项目中需要使用oracle+mybatis批量插入数据,因为自增主键,遇到问题,现记录如下: 一.常用的两种sql写法报错 1.insert ... values ... <insert ...
- mybatis oracle mysql 批量插入时的坑爹问题--需谨记
mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...
- Oracle 存储过程批量插入数据
oracle 存储过程批量插入大量数据 declare numCount number; userName varchar2(512); email varchar2(512); markCommen ...
- 解决Oracle+Mybatis批量插入报错:SQL 命令未正确结束
Mybatis批量插入需要foreach元素.foreach元素有以下主要属性: (1)item:集合中每一个元素进行迭代时的别名. (2)index:指定一个名字,用于表示在迭代过程中,每次迭代到的 ...
- Oracle/Mysql批量插入的sql,效率比较高
1.oracle 批量插入: insert into tableName(col1,col2,col3...) select 1,'第一行第一列值','第二列值' from dual union ...
- oracle+ibatis 批量插入-支持序列自增
首先请先看我前面一篇帖子了解oracle批量插入的sql:[oracle 批量插入-支持序列自增] 我用的ibatis2.0,sqlMap文件引入的标签如下: <!DOCTYPE sqlMap ...
- Mybatis中实现oracle的批量插入、更新
oracle 实现在Mybatis中批量插入,下面测试可以使用,在批量插入中不能使用insert 标签,只能使用select标签进行批量插入,否则会提示错误 ### Cause: java.sql.S ...
- Oracle中批量插入
为了防止OracleConnection的重复打开和关闭,使用begin end:将sql语句包在里面,然后一次性执行提高插入的效率. 下面代码中要插入的数据在list集合中,如果list集合的cou ...
随机推荐
- SVM支持向量机总结
一.拉格朗日乘子法 一般,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件.这里我们先介绍拉格朗日乘子法,后面再介绍KKT条件. 比如考虑下面的组合优化的问题, 这是一个带等式约束的优化 ...
- java堆结构和垃圾回收
JVM内存结构和垃圾回收一.JVM垃圾收集算法1.引用计数算法 每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收. 此方法简单,无法解决对象互相循环引用的问题 ...
- 关于手机适配中的rem的学习随笔
githup 下载地址 :https://github.com/comjustforfun/remformobile adaptivejs利用rem解决移动端页面开发的自适应问题 页面模板初始化的时候 ...
- appium ios 自动化测试
iOS自动化测试:Appium 从入门到实践https://www.jianshu.com/p/43f858180557appium自动化测试iOS Demohttps://www.jianshu.c ...
- Restful风格API
一:协议 API与用户的通信协议,总是使用HTTPS协议. 二:域名 应该尽量将API部署在专用域名之下. https://api.example.com 如果确定API很简单,不会有进一步扩展,可以 ...
- 斐迅面试记录—Http协议中的Header
HTTP Request的Header信息 1.HTTP请求方式 如下表: 说明: 主要使用到“GET”和“POST”. 实例: POST /test/tupian/cm HTTP/1.1 分成三部 ...
- 跨域问题-nginx代理
有时候我们跨域是借助了浏览器对 Access-Control-Allow-Origin 的支持.但有些浏览器是不支持的,所以这并非是最佳方案现在我们来利用nginx 通过反向代理 满足浏览器的同源策略 ...
- python-socket作业
#客户端 import socket import threading import tkinter sock = socket.socket(socket.AF_INET, socket.SOCK_ ...
- 带你走进AJAX(1)
ajax是什么? (1)ajax (asynchronouse javascript and xml) 异步的javascript 和xml (2)ajax是一个粘合剂,将javascript.xml ...
- STM32-串行SPI nor
源:FLASH 存储学习-串行SPI nor 1.1 SST25VF080B简介1.1.1 主要特性 关键点:容量.速度(时钟速度.读写速度).功耗. l 容量:8MBit: l 最高SPI时钟频率: ...