oracle批量操作】的更多相关文章

背景: 前两天由于工作需要做个业务单据接口(支持批量处理),一般有接口发布为批量,但访问数据库时还是一张张单据处理,本次访问数据库也是批量操作.   内容: 研究发现Oracle批量操作有两种:1)BulkCopy 2)OracleCommand .由于BulkCopy 的操作方式(表名.列映射.数据源)仅支持添加,无法做更新操作,所以不考虑此方式. OracleCommand 在支持批量时,属性ArrayBindCount的值是至关重要的,它代表着一批的量,即如果你提供的参数的数组长度大于它的…
1:批量插入 <insert id="insertBatch" parameterType="Java.util.List" > insert into RECIPEDETAIL (RDID, ROID, TYPE, NAME, MEDIWEIGHT, MEDINUM, MONEY, OPERATETIME, CHARGENUMBER, REMARK, INSTRUCTION, AMOUNTEVERY, MEDIUNIT, STATUS) <!--…
https://stackoverflow.com/questions/39576/best-way-to-do-multi-row-insert-in-oracle 1 批量insert 方式一: insert into table_name(column1,column2,..) select value1,value2,... from dual union all select value11,value12,.. from dual 方式二 insert all into table_…
前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了-那么本篇主要总结关于Oralce视图.序列.事务的一些内容- 在数据库中,我们可以把各种的SQL语句分为四大类- (1)DML(数据操纵语言):select,insert,update,delete (2)DDL(数据定义语言):create table,alter table,drop table,truncate table (3)DCL(数据控制语言):grant select any table to sc…
前言 在Oracle总结的第一篇中,我们已经总结了一些常用的SQL相关的知识点了...那么本篇主要总结关于Oralce视图.序列.事务的一些内容... 在数据库中,我们可以把各种的SQL语句分为四大类... (1)DML(数据操纵语言):select,insert,update,delete (2)DDL(数据定义语言):create table,alter table,drop table,truncate table (3)DCL(数据控制语言):grant select any table…
此文主要是讲mybatis在连接oracle数据库时的一些批量操作,请各位对号入座 (最后回来补充一下,所有都是在Spring+MVC的框架下实现的) 不废话,上代码: 1.批量插入(网上很多,是针对MySQL的,被坑惨!oracle mybatis里面只能用以下这种配置) (1)DAO: int autoFullPass(@Param("listAutoData")List<SatisfactionSurvey> listAutoData, @Param("ev…
jdbc调用存储过程 使用并获得out模式的参数返回值 //存储过程为sum_sal(deptno department.deptno%type,sum in out number) CallableStatement cs =conn.prepareCall("{call sum_sal(?,?)}"); cs.setInteger(1,7879); cs.setDouble(2,0.0);//第二个传什么都无所谓,因为第二个参数是in out模式,是作为输出的 cs.registe…
1.添加引用 using Oracle.DataAccess.Client; using System.Configuration; 2.代码 增加方法 //DestinationTableName 表名 //connectionString 连接 string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnectionString"].ConnectionString; config配置文件…
正确的oracle批量新增的sql是: 方法 1: <insert id="insertAttractionsBatch" parameterType="java.util.List">insert into ATTRACTIONS ( ID, NAME, LONGITUDE, LATITUDE,  UPDATE_TIME ) <foreach collection="list" item="item" in…
1./// <summary> /// 获取当前目标表结构 /// </summary> /// <param name="tableName">目标表</param> /// <returns></returns> public static DataTable GetOracleTableSchema(string tableName) {             BS.EAP.DBAccess.IDataBa…
1.批量删除/批量更新 mapper: <update id="updatePrjStateByFPrjId" parameterType="string"> update table_name set f_stat = #{f_stat,jdbcType=VARCHAR}, f_s_id = '1' where pk_id in <foreach collection="ids" item="id" ope…
Dapper完美兼容Oracle,执行存储过程,并返回结果集. 这个问题,困扰了我整整两天. 刚刚用到Dapper的时候,感觉非常牛掰.特别是配合.net 4.0新特性dynamic,让我生成泛型集合,再转json一气呵成. 不过,各种ORM总有让人吐槽的地方... 比如,我之前在SqlServer上写测试,搞封装,没有任何问题.CURD.批量操作.存储过程.事物等. 可是以转到Oracle上,就出问题了[喂~不是说好的支持Oracle的么] 在写Dapper+Oracle单元测试的前期,是没有…
前言:做一个数据同步项目,要求:同步数据不丢失的情况下,提高插入性能. 项目DB框架:Mybatis.DataBase:Oracle. ---------------------------------------------------------------------------- 批量插入数据方式: 一.Mybatis 全局设置批处理: 二.Mybatis 局部设置批处理: 三.Mybatis foreach批量插入: ①SELECT UNION ALL: ②BEGIN INSERT I…
200 ? "200px" : this.width)!important;} --> 数据库版本:11GR2 一.介绍 在oracle中没有其他数据库系统中的数据库的概念,对象都是创建在用户下.当前用户具有当前用户下所有对象的所有权限无论该对象是否是当前用户所创建.举个简单例子创建一个用户授予该用户连接权限,然后用管理员用户在该用户下创建一张表,该用户可以删除管理员在该用户下创建的表. 二.权限 权限主要可以分成三类:系统权限.角色.对象权限.角色是一类权限的分组. 1.系统权…
转自:http://blog.chinaunix.net/uid-20495387-id-174394.html http://www.cnblogs.com/rootq/articles/1100086.html http://blog.sina.com.cn/s/blog_7540bf5f0100q82e.html 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER, 参数3 OUT NUMBER…
Oracle并行度默认为1,适当修改并行度对提高性能有很大帮助 1.查看并行度 select table_name,degree from user_tables; --并行度按照用户表分别设置 2.修改并行度 ); ---4是修改该表并行度 alter table table_name parallel ; ---修改并行度为默认值 3.在语句中指定并行度 SELECT /*+ PARALLEL(4) */ FROM T ---指定并行度为4 SELECT /*+ no_parallel */…
Oracle 的Redo 机制DB的一个重要机制,理解这个机制对DBA来说也是非常重要,之前的Blog里也林林散散的写了一些,前些日子看老白日记里也有说明,所以结合老白日记里的内容,对oracle 的整个Redo log 机制重新整理一下. 一.Redo log 说明 Oracle 的Online redo log 是为确保已经提交的事务不会丢失而建立的一个机制. 因为这种健全的机制,才能让我们在数据库crash时,恢复数据,保证数据不丢失. 1.1 恢复分类 恢复分两种: (1)    Cra…
nohup ./command.sh > output 2>&1 & SQL迁移到ORACLE实例 日常运维中,我们经常会有数据库不同类型的迁移,比较多的就是从sql server迁移到oracle 的情况,前一阶段正好有一个类似的项目进行,我将其中的一些注意事项记录下来. 一.迁移的方案 之前也进行过sql -> oracle的迁移,使用过sql server的dts也单独自己写过sqlloader脚本,但是两种方案都不是很满意,dts经常出错,sqlldr的手工编辑很…
1.触发器: 是许多关系数据库系统都提供的一项技术.在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块. 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接收参数. 2.触发器类型: DML触发器    ORACLE可以在DML语句进行触发,可以在DML操作前或操作后进行触发,并且可以对每个行或语句操作上进行触发.  …
转载:http://langgufu.iteye.com/blog/1974211 Problem Description:1.每个表的结构及主键索引情况2.每个表的count(*)记录是多少3.对于创建索引的列,索引的类型是什么?count(distinct indexcol)的值是多少?4.最后一次对表进行分析是在什么时间,分析后,是否又对相关表做过大的操作5.索引最后一次rebuild,是在什么时间,此后对表的操作类型又是什么状况?索引中浪费的空间是多少?6.这些表的存储情况,表的存储参数…
occiwrapper使用指南 occiwrapper是一个开源的.跨平台的Oracle访问组件, 方便C++开发者们灵活地操作oracle数据库.为了方便使用,组件中的接口形式参考的POCO库的使用方式.occiwrapper采用如下的形式执行SQL语句: occiwrapper::Session s = SessionInstance( connection ); s << "truncate table TBL_TEST ", now; 通过session对象维护一个…
“绑定变量”这个词也许对于某些人来说看以来陌生,其实我们在很早的时候就已经开始运用它了. 在java中使用的PrepareStatement对象,大家一定会说这不是将sql语句做预编译操作嘛,被封装的sql语句可以包含动参数,减少编译的次数,提高数据库性能,减轻jvm的负荷. 其实“绑定变量”的用途就是如上边所说. 那么我们用到它的前提是,大量批量操作,条件相同,但参数值不同. 网上有这样的例子 CREATE TABLE TTT1 (X INT); CREATE OR REPLACE PROCE…
1.语法create bitmap index index_name on 表名(字段);2.举个例子你就能明白了:如有表 test(id,name,address)数据(1,张三,大连)(2,李四,天津)(3,王五,北京)(4,赵六,大连) .... 类似这样的数据,如果查询的时候用到 [where address='大连'],因为数据库中有很多这样的数据,所以一般的索引起不到查询加速的作用,而建立位图索引后会产生如下位图效果:假设有4条数据(就如上所示) 大连 天津 北京 1 0 0 0 1…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.视图 1.1.创建视图 2.函数 2.1.创建函数 2.2.调用函数 3.过程 3.1.创建过程 3.2.调用过程 4.包 4.1.创建包/包体 4.2.调用包/包体 5.总结 5.1.删除数据库对象 5.2.编译数据库对象 除表以外,Oracle 还提供了视图.函数.存储过程.包/包体.序列.触发器.作业等对象,以满足数据库业务需要.对大多数应用程序而言,这些对象都只会少量用用,本文也只介绍创建和删除这些对象的基本 SQL 语法…
1.集合 --集合操作: 并集.交集.差. select deptno,job,sum(sal) from emp group by deptno,job union select deptno,to_char(null),sum(sal) from emp group by deptno union select to_number(null),to_char(null),sum(sal) from emp; select deptno,job,sum(sal) from emp group…
1.视图 1.1.创建.删除及调用普通视图 1.2.高级视图介绍 2.函数 2.1.系统函数介绍 2.2.创建.删除及调用自定义函数 3.存储过程 3.1.创建.修改及删除存储过程 3.2.调用存储过程 4.包/包体 4.1.创建包/包体 4.2.调用包/包体 4.3.删除包/包体 5.总结 Oracle 数据库提供了表.索引.视图.函数.存储过程.包/包体.序列.触发器.作业等数十种模式对象.实际上除表以外,其它对象都不是(关系型数据库)应用所必须的,大部分对象都是在某种特殊场景下才会被用到.…
1.查询表中所有数据 select * from 表名; 例:select * from stu; 2.查询的同时修改表中数据 select * from 表名  for update; 例:select * from stu for update; 3.往表中添加数据 insert into 表名(列1,列2...) values(值1,值2...); 例:insert into stu(id,name,age) values(1,'zhangsan',23); 注意:字符串类型要用单引号括起…
(这是2009年写的东西了,在网上看到有人对数据库批量操作的'速度'比较关注,于是就把这篇老文章整理了一下) 一.环境及前提 在244上(一台稍好一些的机器,做了RAID,机械硬盘,Raid几忘了),对eprk_person_flow表进行复制.更新,验证在Oracle数据库中操纵数据的各种方法的速度.共35,629,784条记录. 二.复制:直接建表 create /*+parallel*/table tt1 as select /*+parallel(pf, 4)*/ * from eprk…
1. 批处理 插入 非常多时候都涉及到一系列数据的插入,通过mybatis的动态sql语句可以非常好的解决问题.当然.oracle已经提供了批插入的语句: insert into students select id,name ,email ,sdate from dual union select id,name ,email ,sdate from dual union select id,name ,email ,sdate from dual 利用mybatis动态sql语言的写法: <…
1.视图 在实际操作过程中,本人发现 Oracle 视图定义有一个缺陷,就是不大方便注释,每次写好的注释执行之后再打开视图定义所有注释就全都没了.后来我发现把注释写到末尾就不会被清除,但这样总感觉乖乖的,而且我没见谁这么用过,我自己也很少这么用,目前还不知道有没有其它问题.创建视图示例: CREATE OR REPLACE VIEW v_staff2 AS SELECT t1.staff_id,t1.staff_name,t1.dept_code,t2.enum_name dept_name,t…