传参为数组的调用存储过程问题

sxlcom 2009-03-05 11:05:51
以下是本人的一个J2EE项目中一个DAO中的方法,作用是调用ORACLE存储过程,入参是一个String数组,我在后台存储过程中用了自定义的类型来接受,但总是报内部错误,
(在入参数组转换成java.sql.Types.ARRAY报错)


---------------------------- 数据库部份----------------------------
create table study_array_nick_tab
(
name varchar2(200)
);

create or replace type study_array_nick_list is VARRAY(1000) of varchar2(200);



create or replace procedure study_array_nick(in_array in study_array_nick_list,aa out char) is
v_i number;
begin
for v_i in 1 .. in_array.count loop
insert into study_array_nick_tab(name) values(in_array(v_i));
end loop;

commit;
aa:='1';
exception when others then
rollback;
aa:='0';
raise_application_error('20999','测试错误');
end study_array_nick;


------------------------------------JAVA部份----------------------------------------------------

public String bulkinsert_StoredProcedureExecute(String[] param1) throws Exception{
BulkInsertStoredProcedure proc = new BulkInsertStoredProcedure(getJdbcTemplate().getDataSource()) ;
Map results = proc.execute(param1);
String re_Sring = printflag_1(results);
return re_Sring.trim();
}

private class BulkInsertStoredProcedure extends StoredProcedure {
public static final String SQL = "study_array_nick";
public BulkInsertStoredProcedure(DataSource ds) {
setDataSource(ds);
setSql(SQL);
setFunction(false);
declareParameter(new SqlParameter("IN_PROPERTIES", java.sql.Types.ARRAY,"study_array_nick_list"));
declareParameter(new SqlOutParameter("ob_status", OracleTypes.CHAR,
new RowMapper() {
public Object mapRow(ResultSet rs, int rowNum)
throws SQLException {
String vo = rs.getString(1);
return vo;
}
}));
compile();
}
public Map execute(String[] param1) {
Map inputs = new HashMap();
inputs.put("IN_PROPERTIES", param1);
return super.execute(inputs);
}
}
private String printflag_1(Map r) {
String re_status = null;
for (Iterator it = r.entrySet().iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry) it.next();
re_status = (String) entry.getValue();
}
return re_status;
}

...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
victorxiang 2009-03-07
  • 打赏
  • 举报
回复
victorxiang 2009-03-07
  • 打赏
  • 举报
回复
sxlcom 2009-03-05
  • 打赏
  • 举报
回复
顶一下,大家没有遇到过类似的情况吗?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧