【发布时间】:2015-07-20 12:16:48
【问题描述】:
我是一名学生,刚接触 Java 和存储过程。 我正在尝试编写一个存储过程,它应该将表行作为 java 对象返回。
我有这张桌子: USER_TABLE(USERID, USERNAME, DOB)
&程序是:
create or replace procedure "USER_OUT" (USERID in varchar2,UserObj out User)
is
begin
select * from user_table where
USERID = UserObj.USERID;
end USER_OUT;
在 Java 中,我尝试调用此过程并将对象检索为:-
CallableStatement callableStatement = dh.con.prepareCall("{call USER_OUT(?)}");
User usr = new User();
callableStatement .setInt (1,"123");
usr1 = (User)callableStatement.getResultSet();
callableStatement.registerOutParameter(1, OracleTypes.CURSOR);
callableStatement.executeUpdate();//getting exception as Object is invalid.
是程序执行错误还是我遗漏了什么? 任何帮助都非常感谢! 谢谢。
【问题讨论】:
-
call USER_OUT(?)}只有一个参数。 -
我认为这会有所帮助:stackoverflow.com/questions/21956042/…
-
对不起,我只是在尝试,我使用了 ("{call USER_OUT(?,?)}");也。
-
如何在 SQL 中像这样使用 Java 'User' 类型?为什么 USERID 是一个可接受的参数(但后来没有使用)? SP 本身是.. 有问题的。
标签: java sql stored-procedures