首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

ibatis调用存储过程入参有关问题

2012-10-29 
ibatis调用存储过程入参问题CREATE OR REPLACE TYPE EMP_SALARY_REC AS OBJECT (EMP_ID NUMBER(5),EMP_NAM

ibatis调用存储过程入参问题

CREATE OR REPLACE TYPE EMP_SALARY_REC AS OBJECT (
EMP_ID NUMBER(5),
EMP_NAME VARCHAR2(255),
START_DATE DATE,
SALARY NUMBER
);
/

CREATE OR REPLACE Type EMP_SALARY_TAB AS TABLE OF EMP_SALARY_REC;
/

next we will create a small package with one single test procedure

CREATE OR REPLACE PACKAGE EMP_SALARY_PKG IS
PROCEDURE GET_EMP_SALARIES(i_array IN EMP_SALARY_TAB,o_array OUT
EMP_SALARY_TAB);
End EMP_SALARY_PKG;
/

<!-- 本地连接抽取器 --><bean id="nativeJdbcExtractor" />Java代码://获取连接,如果在事物内,获取事物连接,否则获取新连接,连接实现与web容器有关Connection conn = DataSourceUtils.getConnection(dataSource);//conn = nativeJdbcExtractor.getNativeConnection(conn);was下需要转换,was下的连接与oracle连接都有各自的实现//描述构建自定义类型StructDescriptor sd = new StructDescriptor(type, (OracleConnection)conn); // type,自定义类型名称STRUCT[] struct = new STRUCT[size];for (int i=0;i<size;i++){       //填充数据struct[i]=new STRUCT(sd,conn,Object[]);//Object[]此处的数组对应自定义类型字段定义顺序,为字段值集合}//描述构建自定义数组类型ArrayDescriptor ad = ArrayDescriptor.createDescriptor(typeArray, conn);// typeArray ,自定义集合名称//填充数据ARRAY array = new ARRAY(ad, conn, struct);OracleCallableStatement callStatement = (OracleCallableStatement)conn.prepareCall("{call package.procedure(?)}");callStatement.setARRAY(1, array);//自定义集合类类型// callStatement.setSTRUCT(arg0, arg1)类型参数//执行r = callStatement.executeUpdate();

?

热点排行