首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JAVA客户端传接对象数组到Oracle存储过程做大数据量插入

2013-03-26 
JAVA客户端传递对象数组到Oracle存储过程做大数据量插入最近在项目中用到了JAVA客户端传递对象数组到Oracl

JAVA客户端传递对象数组到Oracle存储过程做大数据量插入

最近在项目中用到了JAVA客户端传递对象数组到Oracle存储过程做大数据量插入,比如10万级别.
下面做一个插入10万条记录的示例步骤,,为了容易理解,表的结果很简单.
1,假设表结构如下:

CREATE TABLE UKBNOVCTCORDER(  LosingLEName varchar2(200),  LosingLECode varchar2(200)  );

2,在数据库建立一个type,对应JAVA端要传入的对象结构:

CREATE OR REPLACE TYPE BUT_UKBNOV_CTC_ORDER_REC AS OBJECT (    losingLEName VARCHAR2(200),       losingLECode VARCHAR2(200)  ); 

3,为了数组传输,建立一个数组类型的type:

CREATE OR REPLACE TYPE BUT_UKBNOV_CTC_ORDER_TAB AS TABLE OF BUT_UKBNOV_CTC_ORDER_REC

4,建立存储过程做插入工作:

CREATE OR REPLACE procedure bulkInsertCTDORDER(i_orders IN BUT_UKBNOV_CTC_ORDER_TAB)  as  ctcOrder BUT_UKBNOV_CTC_ORDER_REC;  begin      FOR idx IN i_orders.first()..i_orders.last() LOOP          ctcOrder:=i_orders(idx);          INSERT INTO UKBNOVCTCORDER            (LosingLEName,             LosingLECode)          VALUES            (ctcOrder.losingLEName,             ctcOrder.losingLECode);      end loop;      exception when others then      raise;  end;  

5,建立JAVA端java bean对象,(为节省版面,下面的get set方法省略,)

    回复pjj1989:将 varchar2 类型改为 nvarchar2

    并将nls_charset12.jar 包放入项目Lib包中
    我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html

热点排行