Java 使用SimpleJDBCall调用oracle过程
我正在尝试使用SimpleJDBCall调用oracle过程。 程序是这样创建的Java 使用SimpleJDBCall调用oracle过程,java,Java,我正在尝试使用SimpleJDBCall调用oracle过程。 程序是这样创建的 CREATE OR REPLACE PROCEDURE procedureName (name IN opt_col) ... end; SimpleJdbcCall call = new SimpleJdbcCall(dataSource).withProcedureName("procedureName"); call.declareParameters(new SqlParame
CREATE OR REPLACE PROCEDURE procedureName (name IN opt_col)
...
end;
SimpleJdbcCall call = new SimpleJdbcCall(dataSource).withProcedureName("procedureName");
call.declareParameters(new SqlParameter(name, Types.ARRAY, "opt_col"));
SimpleJdbcCall.execute(new MapSqlParameterSource().addValue("name", ));
opt_col是一种oracle类型
CREATE OR REPLACE TYPE opt_col FORCE AS TABLE OF VARCHAR2(200);
像这样的Java代码
CREATE OR REPLACE PROCEDURE procedureName (name IN opt_col)
...
end;
SimpleJdbcCall call = new SimpleJdbcCall(dataSource).withProcedureName("procedureName");
call.declareParameters(new SqlParameter(name, Types.ARRAY, "opt_col"));
SimpleJdbcCall.execute(new MapSqlParameterSource().addValue("name", ));
我找不到必须传递给addValue方法的内容
要从oracle调用该过程,我使用以下命令
Begin
procedureName(opt_col("name"));
End;
您需要传递存储过程需要使用的name变量的值。对不起,我不明白您的答案。opt_col是表的一种类型,因此我认为在SqlParameter中,类型必须是Types.ARRAY。也许这是错误的。我必须在addValue中向过程传递什么值?