简体   繁体   English

休眠PLS-00306错误

[英]hibernate PLS-00306 error

I have a legacy procedure on db, and I cannot modify it. 我在db上有一个旧程序,我无法修改它。 It looks like this: 看起来像这样:

create or replace FUNCTION  GETSESSION
   ( sUsername IN varchar) return varchar
   IS
     nSession number;
     sRAWString   RAW (32767);
     sKey varchar(60);
     sKey2 varchar(60);
BEGIN
    select webservice.seq_mgmt.NEXTVAL, sys_guid() into nSession, sKey2 from dual;
    sRAWString   := UTL_RAW.CAST_TO_RAW (sKey2);
    sKey:=LOWER(SYS.DBMS_CRYPTO.HASH (sRAWString, SYS.DBMS_CRYPTO.HASH_MD5));
    update mgmt_session s set s.loggedout = sysdate where upper(s.userid) = upper(sUsername) and loggedout is null;
    insert into mgmt_session a (userid, sessionid, token, loggedin)
                        (select upper(susername), nSession, sKey, sysdate from dual);
    return sKey2;
END;

Along with this, I also has legacy code, that thankfully, I can and should modify to make it pretty. 除此之外,我还有旧代码,值得庆幸的是,我可以并且应该进行修改以使其美观。 So I want to change direct call to database procedure to hibernate call, but I ran into error PLS-00306 that claims I have wrong number or type of arguments. 因此,我想PLS-00306数据库过程的直接调用更改为休眠调用,但是遇到了错误PLS-00306 ,该错误声称我的参数数目或类型错误。

here is my call: 这是我的电话:

StoredProcedureQuery query = entityManager.createStoredProcedureQuery("GETSESSION")
                .registerStoredProcedureParameter(1, String.class, ParameterMode.IN)
                .registerStoredProcedureParameter(2, String.class, ParameterMode.OUT)
                .setParameter(1, username);

        query.execute();
        return (String) query.getOutputParameterValue(2);

I know what error message cays - I just can't understand what's wrong with my parameters setting :/ This procedure takes one string, and returns other string. 我知道错误消息的原因-我只是不明白我的参数设置有什么问题:/此过程采用一个字符串,并返回其他字符串。 Or am I wrong? 还是我错了?

输出参数为2。使用query.getOutputParameterValue(2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 当 Hibernate 看起来正确时,为什么我会收到 PLS-00306“调用中的 arguments 的数量或类型错误”? - Why am I getting PLS-00306 “wrong number or types of arguments in call” when the Hibernate looks correct? MyBatis Oracle呼叫PLS-00306:呼叫错误的参数数量或类型错误 - MyBatis Oracle Call PLS-00306: wrong number or types of arguments in call Error 使用带有布尔 IN 参数的 CallableStatement 在 Java 中调用 Oracle PL/SQL 过程会产生 PLS-00306 oracle 错误: - Calling an Oracle PL/SQL procedure in Java using a CallableStatement with a boolean IN parameter gives an PLS-00306 oracle error: 使用Java调用PL / SQL函数时,类型或参数数量错误。 PLS-00306错误 - Wrong type or number of parameters when calling a PL/SQL function using Java. PLS-00306 error PLS-00306:Java中对GET_NEW_EVENTS的调用中参数的数量或类型错误 - PLS-00306: wrong number or types of arguments in call to GET_NEW_EVENTS in Java ORA-06550:第1行,第7列:PLS-00306:错误的数量或调用中的参数类型 - ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call 具有命名绑定的 CallableStatement 导致 PLS-00306:错误的参数数量或类型 - CallableStatement with Named binding leads to PLS-00306: wrong number or types of arguments 引起:java.sql.SQLException:ORA-06550:第 1 行,第 7 列:PLS-00306:ZDBC11CAA5BDA99F77E6FB4DABD_SPE_FA 7 调用中的 ZDBC11CAA5BDA99F77E6FB4DABD8SPE_7 的错误编号或类型 - Caused by: java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'PR_SP_FAHMI' 使用Netbeans时出现此错误pls 103103 - I'm getting this error pls 00103 when using netbeans 我得到这个错误..pls指导我解决它 - I m getting this error ..pls guide me to solve it
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM