java调用oracle存储过程报错

Anitay 2013-07-29 07:19:17
try {
conn = (new Connect()).getConnect();

cs = conn.prepareCall(Procedure.logIn);----在这里报错
//System.out.println("cs");
cs.setString(1, user);
cs.registerOutParameter(2, Types.VARCHAR);
cs.registerOutParameter(3, Types.VARCHAR);
cs.registerOutParameter(4, Types.VARCHAR);
cs.execute();

错误:Caught : java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'BIT_VERIFICATION_PROCE'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored

存储过程如下:
CREATE OR REPLACE PROCEDURE BIT_VERIFICATION_PROCE
(
P_USER_ID IN BIT_USER_TABLE.USER_ID%TYPE , --用户ID
P_USER_NAME OUT BIT_USER_TABLE.USER_NAME%TYPE,
P_USER_PASSWORD OUT BIT_USER_TABLE.USER_PASSWORD%TYPE, --用户密码
P_USER_ROLE OUT BIT_USER_TABLE.USER_ROLE%TYPE
)
IS
BEGIN

SELECT USER_NAME,USER_PASSWORD,USER_ROLE INTO P_USER_NAME,P_USER_PASSWORD,P_USER_ROLE
FROM BIT_USER_TABLE
WHERE USER_ID = P_USER_ID ;

EXCEPTION --抛出异常
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE || ',' || SQLERRM) ;

END ;

存储过程测试可以运行,在程序中调用报错,已经为用户赋予dba权限。求大神指教。
...全文
212 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yezhijing 2013-07-30
  • 打赏
  • 举报
回复
自己写的类内部可能有问题,调试一下应该就能找到原因了
放纵的青春 2013-07-30
  • 打赏
  • 举报
回复
错误:Caught : java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列: PLS-00201: 必须声明标识符 'BIT_VERIFICATION_PROCE' ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored 这个错误告诉你找不到存储过程呢? 确定程序掉到这个存储过程了么! 是不是名字写错了!
loveofmylife 2013-07-30
  • 打赏
  • 举报
回复
你java代码里连接的数据库的schema中没有这个procedure或者这个procedure编译不成功
hippoppower 2013-07-30
  • 打赏
  • 举报
回复
Procedure.logIn 什么意思??
yanjingrong 2013-07-30
  • 打赏
  • 举报
回复
java部分贴的代码太少,Procedure.logIn哪儿来的
ziweixinghello 2013-07-30
  • 打赏
  • 举报
回复
太长了,没看懂

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧