【Oracle 实现批量插入并且获取批量插入的主键id】教程文章相关的互联网学习教程文章

【转】mybatis Mybatis批量插入Oracle、MySQL

要做批量插入数据库,首先得知道该数据库对批量插入所支持的语法。每个数据库批量插入的语法都不一样,我介绍两种。MySQL:1、INSERT INTO TABLE_NAME(ID,NAME)VALUES(1,‘张三‘),(2,‘李四‘) 2、INSERT INTO TABLE_NAME(ID,NAME)VALUES(1,‘张三‘);INSERT INTO TABLE_NAME(ID,NAME)VALUES(2,‘李四‘)Oracle:1、INSERT INTO TABLE_NAME (ID,NAME) (SELECT 1,‘张三‘ from dual) union all (SELECT 2,‘李四‘ fr...

Oracle批量插入数据【代码】

Oracle批量插入数据 学习了:http://blog.csdn.net/chenleixing/article/details/45165761/ 膜拜一下,引用原文:那么有没有其他方法呢??答案是有的,也许熟悉oracle数据库的可能知道从oracle9i版本以后,可以使用一种方法即:"INSERT ALL INTO a表 VALUES(各个值) INTO a表 VALUES (其它值) INTO a表 VALUES(其它值) ....再跟一个SELECT 语句"。后边跟的SELECT 语句我们可以从虚拟表里查如 SELECT 1 FROM DUAL。注意后边跟的S...

mybatis批量插入oracle大量数据记录性能问题解决【代码】

环境: mybatis + oracle11g r21.使用"直接路径插入"(以下sql语句中的"/*+append_values */"),而且使用keyword"union all":<insert id="addUidCodeBatch" parameterType="java.util.List"> insert into /*+append_values */T_UID_CODE(C_UID_CODE,C_SERAIL_LEN,C_BATCH_CODE,C_TYPE,C_CREATE_TIME,C_SUPER_CODE,c_security_code,C_SERIAL_CODE)<foreach collection="list" item="item" index="index" separator="union all" > s...

C++完毕Oracle存储过程批量插入(二)【代码】

上篇文章简单的介绍了一下oracle參数是Object类型的数据库存储过程,以及JAVA使用JDBC去调用该类的存储过程的方法。可是我须要的是C++下的方案。使用Poco库未发现不论什么能够调用该类型存储过程的方法,可是功能还是须要实现的,后来发现Oracle支持XML的解析,于是有了以下的方案。即存储过程的參数为CLOB类型,C++依照传入XML格式字符串的方式调用存储过程,在存储过程中解析xml后。将数据插入数据库中。 (有了上述的方案后,我...

Mybatis+Oracle --批量插入【代码】

SEQUENCE "ENERGY"."ROLE_OBJECT_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 150 NOCACHE NOORDER NOCYCLE ;触发器:CREATE OR REPLACE TRIGGER TRIGGER_ROLE_OBJECT BEFORE INSERT ON SYS_RIGHT_ROLE_OBJECT FOR EACH ROW BEGINSELECT ROLE_OBJECT_SEQ.nextval into :new.ROLE_OBJECT_ID from dual; END; Mybatis : <insert id="insertSelectiveByList" parameterType="java.ut...

Mybatis+Oracle进行数据的批量插入和更新【代码】

方法一:Mybatis本身只支持逐条插入,比较笨的方法,就是遍历一个List,循环中逐条插入,比如下面这段代码<pre class="java" style="margin-top: 0px; margin-bottom: 10px; box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, ‘Courier New‘, monospace; font-size: 13px; padding: 9.5px; color: rgb(51, 51, 51); word-break: break-all; word-wrap: break-word; border: 1px solid rgb(204, 20...

Oracle批量插入有日期类型数据【代码】

insert into t(id,date,name) 2 select level,trunc(current_timestamp)+level,‘zhangsan‘ 3 from dual 4 connect by level<= add_months(trunc(current_timestamp),1)-trunc(current_timestamp)add_months(time,months)Oracle的自带的日期函数,在time这个时间上增加或减少months个月select add_months(current_timestamp,6) from dual --在当前时间加上半年 select add_months(current_timestamp,-1) from dual --在当前时...

Oracle批量插入在C#中的应用

void SetUserReportResult(int[] reportId, bool isReceive, string result){if (reportId == null)throw new ArgumentNullException("reportId");result = result.Left(80);string sql = "update msg_user_receive_report set isreceive=" + Convert.ToInt32(isReceive) + ",";if (!isReceive)sql += "ukey=‘0‘,";var resultParam = "null";if (result != null)resultParam = "‘" + result.Replace("‘", "‘‘") + "‘";sql +...

oracle 在xml中批量插入,批量修改及多组条件查询

批量插入 --><insert id="saveNotificationPushInfo" parameterClass="java.util.List"><![CDATA[INSERT ALL]]><iterate conjunction="" >into notification_push_info(push_log_no,business_book, employee_id, notification_no,push_flag, push_time)values(bep_seq_package.fetch_seq(‘NOTIFICATION_PUSH_INFO‘,‘PUSH_LOG_NO‘,‘BEPDATA‘),#list[].businessBook:varchar#,#list[].employeeId:varchar#,#list[].notificatio...

mybatis foreach批量插入数据:Oracle与MySQL区别【代码】

mybatis foreach批量插入数据:Oracle与MySQL不同点:主要不同点在于foreach标签内separator属性的设置问题:separator设置为","分割时,最终拼接的代码形式为:insert into table_name (a,b,c) values (v1,v2,v3) ,(v4,v5,v6) ,... separator设置为"union all"分割时,最终拼接的代码形式为:insert into table_name (a,b,c) values (v1,v2,v3) union all (v4,v5,v6) union all...详情请见示例代码:Oracle: <insert id="inserDat...

mybatis Oracle 批量插入,批量更新【代码】

传入的参数只要是list类型的参数就行了。。。。。。。。。。。。。。1、批量插入<insert id="insertBatch" parameterType="java.util.List"> INSERT INTO T_CITY_INDEX( id,city_code ) select SEQ_CITY_INDEX.NEXTVAL,cd.* from( <foreach collection="list" item="item" index="index" close=")" open="(" separator="union"> select #{item.cityCode,jdbcType=VARCHAR}, #{item.cityName,...

MyBatis之Oracle、Mysql批量插入【代码】

Mybatis中Dao层 public interface UsersMapper {public void insertEntitys(List<UserEntity> users); } Oracle中批量插入 <insert id="insertEntitys" parameterType="list" useGeneratedKeys="false">INSERT INTO tab_user(id,name)select cd.* from(<foreach collection="list" item="item" index="index" close=")" open="(" separator="union">select#{item.id,jdbcType=VARCHAR},#{item.name,jdbcType=VARCHAR}from dual</f...

oracle批量插入優化方案【代码】

今天聽DBA説如果從一個表批量查詢出一批數據之後批量插入另外一張表的優化方案: 1)不寫歸檔日誌; 2)採用獨佔 關於insert /*+ append */我們需要注意以下三點: a、非歸檔模式下,只需append就能大量減少redo的產生;歸檔模式下,只有append+nologging才能大量減少redo。 b、insert /*+ append */時會對錶加鎖(排它鎖),會阻塞表上的除了select以外所有DML語句; 1 --不寫日誌設置2 ALTER TABLE my_flosta_all_571 NOLOGGING;...

Mybatis 批量插入带oracle序列例子+ORA-02287: 此处不允许序号

在使用mybatis进行批量插入时,发现对于使用Oracle的自动增长序列时提示 :  ORA-02287: 此处不允许序号 的错误,下面的这种使用可以解决问题: <!-- 批量插入 --> <insert id="inserts" parameterType="java.util.List"> insert into PRESON select SEQ_PRESON_ID.NEXTVAL,A.* from( <foreach collection="list" item="item" index="index" separator="UNION"> SELECT ...

mybatis使用oracle批量插入

<foreach collection="list" item="item" index="index" open="(" close=")" separator="union all">select#{item.orderId,jdbcType=NUMERIC}, #{item.transactionId,jdbcType=VARCHAR}, #{item.orderType,jdbcType=NUMERIC},#{item.wxAppid,jdbcType=VARCHAR}, #{item.payOrderId,jdbcType=VARCHAR}, #{item.payTime,jdbcType=DATE},#{item.refundMoney,jdbcType=DECIMAL}, #{item.payState,jdbcType=NUMERIC}, #{item.source,jdb...