记工作需要用到的一个批量插入数据的脚本。declare code_ number(10) := 100000; num_ number(10) := 2000000; error_message exception;begin for i in 100 .. 1000 loop num_ := num_ + 1; code_ := code_ + 1; insert into tpj_gf_ma_invoiceinfo values (i, num_, code_,); end loop; commit;end;再次改进: declare code_ number(10) := 100000;num_ number(10) := 2000000; erro...
问题:mysql使用mybatis批量插入时,通过foreach标签,将每条记录按照逗号","连接即可。但是,oracle不支持。 oracle支持如下写法: <insert id="insertStudents">INSERT INTO Student(id, name, age, sex)<foreach collection="stuList" item="item" index="index" separator="union all"> (select #{item.id,jdbcType=VARCHAR},#{item.name,jdbcType=VARCHAR},#{item.age,jdbcType=VARCHAR},#{item.sex,jdbcType=VARCHAR}from d...
1.创建一个表类型tabletype: createorreplace type tabletype astableofVARCHAR2(32676); 2.创建split 函数CREATEORREPLACEFUNCTION split (p_list CLOB, p_sep VARCHAR2 :=‘,‘)
RETURN tabletype
PIPELINED
IS/*
* 2015-11-11
* Function: 返回字符串被指定字符分割后的表类型。
* Parameters: p_list: 待分割的字符串。
p_sep: 分隔符,默认逗号,也可以指定字符或字符串。 */l_idx PLS_INTEGER;
v_list VARCHAR2 (32676) ...
传入的参数只要是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,...
Oracle数据库批量数据导出工具开发
需求最近工作中遇到一个需求,用户频繁要求从后台批量导出大量数据。目前的导出方式是使用PL/SQL Developer工具连接Oracle数据库,编写SQL语句,使用PL/SQL Developer工具自带的导出Excel文件的功能进行导出。编写SQL查询结果2.选择导出Excel文件选择导出Excel文件时可以选择导出XLS、XLSX两种格式的文件。遇到的问题:当用户要求导出的数据条数太大,超过XLS或者XLSX两种文件可以存储的最大行数...
Oracle 批量更新表字段CreateTime--2018年2月27日16:02:24Author:Marydon(一) 将数字替换成汉字 第一步,去重查询 使用distinct关键字先对该字段值进行去重查询,看共有几种情况--查询指定区间内表停诊字段的值SELECTDISTINCT T.CLOSE_TZFROM CONSULT_SCHEDULE TWHERE T.SCHEDULE_DATE BETWEEN TO_DATE(‘2018-01-01‘, ‘yyyy-MM-dd‘) ANDTO_DATE(‘2018-02-28‘, ‘yyyy-MM-dd‘); 查询结果:共有3种情况 第二步,...
xml文件参数对象:1publicclass Columns{
2private String basedate_code;
3private String tableName;
4private String codeDescribeindex;
5private String codeInfoindex;
6private String codePymindex;
7private List<Info> infos;Dao层方法:publicvoid bulkInsert(Columns columns);xml文件配置: 1<insert id="bulkInsert" parameterType="Columns"> 2 insert into manager_basedata_info (app_code,basedata_code,...
在一般的情况下,使用批量fetch的几率并不是很多,但是Oracle提供了这个功能我们最好能熟悉一下,说不定什么时候会用上它。 复制代码 代码如下:declare cursor c1 is select * from t_depart; v_depart t_depart%rowtype ; type v_code_type is table of t_depart.depart_code%type ; v_code v_code_type ; type v_name_type is table of t_depart.depart_name%type ; v_name v_name_type ; begin open c1; fetch c1 bul...
进入DOS界面。进入SQL文件目录。在命令提示下运行SqlPlus,c:\sql>sqlplus user_name/password@net_service_name指定SQL执行日志文件,日志文件名任意,但必须以log为后缀名:sql>spool e:\temp\a.log创建批量执行文件。如果要批量执行多个SQL文件,可以创建一个list文件,例如list.sql,里面列出每个SQL文件,以@@开头,例如@@a.sql;@@b.sql;调用批量执行文件,sql>@list.sql如果只执行单个SQL文件,可以直接调用,sql>@@a.sqlSQL...
--以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$process ;SELECT * FROM v$locked_object;SELECT * FROM all_objects;SELECT * FROM v$session_wait;--查看被锁的表 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;--查看那个用户那个进程照成死锁select b.username,b.sid,b.serial#...
用游标逐条数据更新实在是太慢了,并且在同一个表中进行一系列的查询后删除、删除后插入很有可能会循环过载,因此批量处理数据很重要,下面是我在项目中写的一小部分存储过程的部分功能操作,主要实现的是把同类数据的数量相加后重新插入数据,去除其余重复数据,废话不说,上代码begin --V_STEP := 5; insert into T_BU_FUTURE_ORDER_EI_TMP (FACTORY_CODE, Ei_Code, Car_Type_Code, Pro...
传入的参数只要是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,...
批量插入dao层public interface MsgInfoMapper {int insertBatch(@Param("tableName")String tableName,@Param("list")List<MsgInfo> list);
}
mapper.xml
传入表名,使用${}拼接,不会预编译,使用#{}会导致预编译为占位符号“?”<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.mybati...
FORALL语句的一个关键性改进,它可大大简化代码,并且对于那些要在PL/SQL程序中更新很多行数据的程序来说,它可显著提高其性能。1:
用FORALL来增强DML的处理能力
Oracle为Oracle8i中的PL/SQL引入了两个新的数据操纵语言(DML)语句:BULK COLLECT和FORALL。这两个语句在PL/SQL内部进行一种数组处理;BULK COLLECT提供对数据的高速检索,FORALL可大大改进INSERT、UPDATE和DELETE操作的性能。Oracle数据库使用这些语句大大减少了PL/S...
有些时候需要将Oracle的多个数据文件以及日志文件重定位或者迁移到新的分区或新的位置,比如磁盘空间不足,或因为特殊需求。对于 有些时候需要将Oracle的多个数据文件以及日志文件重定位或者迁移到新的分区或新的位置,比如磁盘空间不足,,或因为特殊需求。对于这种情形可以采取批量迁移的方式将多个数据文件或者日志文件实现一次性迁移。当然备份恢复也是其中的方式之一。本文主要描述如何使用批量方式来迁移数据文件,日志文件。...