根据谷歌和其他一些来源(例如,http://www.enterprisedt.com/publications/oracle/result_set.html),如果我想调用一个返回引用游标的存储函数,我需要写这样的东西才能访问ResultSet:< / p>
String query = "begin ? := sp_get_stocks(?); end;";
CallableStatement stmt = conn.prepareCall(query);
// register the type of the out param - an Oracle specific type
stmt.registerOutParameter(1, OracleTypes.CURSOR);
// set the in param
stmt.setFloat(2, price);
// execute and retrieve the result set
stmt.execute();
ResultSet rs = (ResultSet)stmt.getObject(1);
无论如何都没有在Oracle上引入编译时依赖性。是否有OracleTypes.CURSOR的通用替代方案?
答案 0 :(得分:5)
常量OracleTypes.CURSOR
为-10。相当难看的解决方案,但你可以在那里写-10或创建自己的常量,其值为-10。
答案 1 :(得分:1)
你试过java.sql.Types.OTHER
吗?它可能会奏效。 API表示,它适用于特定于数据库的类型。