近日小总结关于oracle批量操作

前言————
事情总是这么不尽人意,在别人交完毕设,开心散伙饭的时候,我还在实验室,与我打了一年交道的Oracle9i继续纠缠。有人说很庆幸早点远离了MSP,我所有失必有得,问:得的是什么?答曰:只可意会不可言传。

在学习数据库批处理的时候,记得特别清楚,举的例子就是insert语句,于是给我留下了一个印象:只有insert可以执行批处理。但是面对在更新一个29w条数据的表,那种如蜗牛般的速度时,我不得不从网上找出理论支持来推翻心中的那个MS三年的印象。

1
   具体例子在附件,顺便还有两个创建索引和删除索引的方法,哈哈



1.基本的insert语句批插入。这是最基本的,将要插入的参数穿过来。底下这个是sql。

1
2
3
4
5
         PreparedStatement pstmt=null;
                  Vector<String[]> v_c=this.v;
                 String sql="insert into tb_cl(czkbj,ch,cc,fbzmc,jyzmc,cwd,qd,tlx,ddt,lybz,qb_rksj,fzmc,zzdzmc,zaz,zz,hwmc,"+
"shr,czcx,id_xd,cfsj,ddsj)   values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
		   pstmt=conn.conn.prepareStatement(sql);


2.从别的表查询出数据插入,带参数。

1
                 String sql="insert into tb_cl(select * from tb_x where name=?)";


3.更新操作,带条件。

1
                 String sql="update tb_cl set cwd=?,qd=?,tlx=?,ddt=?  where jyzmc=? and lybz='1' ";



4.带条件的删除。

1
sql="delete from tb_cl where ch=? and to_date(cfsj,'yyyy-mm-dd hh24:mi:ss')<to_date(?,'yyyy-mm-dd hh24:mi:ss')";



基本就这些吧。写这篇文章的目的只是想让不知道的人知道一下而已。问题本身不是难题。>

原文地址:https://www.cnblogs.com/lan0725/p/1873864.html