【发布时间】:2018-03-13 14:00:39
【问题描述】:
我在 oracle 中有一个使用一进一出参数解密密码的程序。我正在尝试按如下方式调用我的 java 程序,但它显示 SQLGrammarException。我是 Oracle 的新手,第一次尝试这个。对不起,我在互联网上搜索,但我没有找到任何东西。 在 SQL server 中我是这样使用的。
Iterator it = hibernateSession.createSQLQuery("EXEC DAN_DANAPP_DECRYPPWD '" + username.getText().trim() + "'").list().iterator();
它在 SQL Server 中运行。当我在 Oracle 中尝试相同的方法时,它不起作用。谁能发现我犯了什么错误。
我的Oracle程序如下
CREATE OR REPLACE PROCEDURE DAN0703.DAN_DANAPP_DECRYPPWD
(EMPNO IN VARCHAR2,P_STRING OUT VARCHAR2)
IS
P_KEY_STRING VARCHAR2(12) := 'xxxxxxxxxxxx';
P_ERROR_NO NUMBER;
RAW_KEY RAW(128);
DECRYPTED_RAW RAW(2048);
BEGIN
RAW_KEY := UTL_RAW.CAST_TO_RAW(P_KEY_STRING);
select USER_PASSWD into P_STRING FROM MENU_USER WHERE USER_ID = EMPNO AND
USER_FLAG = 'O' and (USER_DISABLE_FLAG='N' or USER_DISABLE_FLAG='V');
DBMS_OBFUSCATION_TOOLKIT.DESDECRYPT(INPUT => P_STRING, KEY => RAW_KEY,
DECRYPTED_DATA => DECRYPTED_RAW );
P_STRING := UTL_RAW.CAST_TO_VARCHAR2(DECRYPTED_RAW);
END;
提前感谢您的支持。
【问题讨论】:
-
你使用的是hibernate框架还是简单的JDBC?
loginsession是什么? -
对不起,忘了说。是的,我正在使用休眠框架,它是我的会话变量。
-
createSQLQuery 似乎已被弃用 docs.jboss.org/hibernate/orm/5.2/javadocs/org/hibernate/query/…
-
我只使用 4.3 版。
标签: java sql-server hibernate stored-procedures