我有问题从数据库中检索光标。 数据库:Oracle数据库10g企业版10.2.0.4.0版
数据库存储过程:
procedure p_dddw_Client(s_Client in csmweb.web_order_header.client_code_regional%type,
s_ClientRole in varchar2,
arr_AnyRec in out r_AnyRec); //TYPE r_AnyRec IS REF CURSOR;
阅读Java中的存储过程:
Connection connection = null;
CallableStatement cs = null;
try
{
connection = createConnection();
cs = connection.prepareCall("ord_aux.p_dddw_client(?,?,?)");
//Input parameters
cs.setString("s_Client", "20975-A");
cs.setString("s_ClientRole","");
cs.registerOutParameter("arr_AnyRec",OracleTypes.CURSOR);
cs.execute(); //ERROR
来自数据库的错误代码在哪里是cs.execute(): ORA-03115:不支持的网络数据类型或表示
有没有人有经验如何正确或一些建议? 我有什么不对吗? 非常感谢。
答案 0 :(得分:0)
我不确定这是不是问题,但是准备调用的语法是否正确?
我认为应该是:
CallableStatement stmt =
conn.prepareCall("{ call ord_aux.p_dddw_client(?,?,?) }");
我也不确定对setString的调用。我总是用数字来解决这些参数,但你所拥有的也可能是有效的,我不确定,例如:
cs.setString(1, "20975-A");
cs.setString(2,"");
cs.registerOutParameter(3,OracleTypes.CURSOR);