日期:2014-05-20  浏览次数:20818 次

java调用oracle存储过程报错
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权限。求大神指教。
Java Oracle 存储过程

------解决方案--------------------
java部分贴的代码太少,Procedure.logIn哪儿来的
------解决方案--------------------
Procedure.logIn  什么意思??
------解决方案--------------------
你java代码里连接的数据库的schema中没有这个procedure或者这个procedure编译不成功
------解决方案--------------------
错误:Caught : java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列: 
PLS-00201: 必须声明标识符 'BIT_VERIFICATION_PROCE'
ORA-06550: 第 1 行, 第 7 列: