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;
private class BulkStoredProcedure extends StoredProcedure {
public static final String SQL = "study_array_nick";
public BulkStoredProcedure(DataSource ds) {
setDataSource(ds);
setSql(SQL);
setFunction(false);
declareParameter(new SqlParameter("param_1",java.sql.Types.ARRAY));
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("param_1", param1);
return super.execute(inputs);
}
}
private String printflag1(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;
}作者: gkl0818 时间: 2009-3-3 21:11 http://www.cnblogs.com/gkl0818/archive/2008/12/20/1359080.html
你看看这个能不能帮助你作者: dingjun123 时间: 2009-3-3 22:10
[php]
这东西主要对oracle提供的api要熟悉。
比如存储过程是这样写的,里面传入nested table,如下:
create type strings is table of varchar2(10);--nested table
--create table
drop table test;
create table test (name varchar2(10));
/
--procedure
create or replace procedure testoracle(param in strings)--param is nested table
as
begin
for i in param.first .. param.last loop
insert into test values(param(i));
end loop;
commit;
end testoracle;
/
--java,加入ojdbc14.jar
package com.jdbc.procedure;