java.sql.SQLException:ORA-06550:从java代码调用过程后
发布时间:2020-12-15 08:48:35 所属栏目:Java 来源:网络整理
导读:嗨,我有调用存储过程的问题. 当我试图从我的以下 java代码调用我的过程时 connection = ConnectionManager.getInstance().getConnection(dataBaseURL,serverName,portNumber,sid,username,password);callable = connection.prepareCall("{call SCHEMA_RESTOR
嗨,我有调用存储过程的问题.
当我试图从我的以下 java代码调用我的过程时 connection = ConnectionManager.getInstance().getConnection(dataBaseURL,serverName,portNumber,sid,username,password); callable = connection.prepareCall("{call SCHEMA_RESTORE.restore()}"); callable.executeUpdate(); .................................. 我得到了这个例外 Exception in thread "main" java.sql.SQLException: ORA-06550: line 1,column 7: PLS-00201: identifier 'SCHEMA_RESTORE.RESTORE' must be declared ORA-06550: line 1,column 7: PL/SQL: Statement ignored at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093) at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047) at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589) at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:656) 我的Prodedure是 CREATE OR REPLACE PACKAGE BODY SCHEMA_RESTORE IS PROCEDURE backup (pbRecreateBackupTable IN BOOLEAN DEFAULT FALSE) IS TableAlreadyExists EXCEPTION; PRAGMA EXCEPTION_INIT (TableAlreadyExists,-955); nCount NUMBER; CURSOR cTables IS SELECT tbls.table_name tbl,SUBSTR(tbls.table_name,4) name FROM user_tables tbls,FT_T_TBDF tbdf WHERE tbls.table_name NOT LIKE gsPrefix || '%' AND tbls.table_name NOT LIKE 'FT_CFG%' AND tbls.table_name NOT IN ('FT_WF_APEV','FT_WF_WFTJ','FT_WF_WFTN','FT_WF_WFNP','FT_WF_WFNV','FT_WF_WFIO','FT_WF_WFGV','FT_WF_WFND','FT_WF_WFDF','EXCEPTIONS','TESTDSFP') and tbls.table_name NOT LIKE 'FT_LOG%' AND tbdf.tbl_id(+) = SUBSTR(tbls.table_name,-4) AND tbdf.tbl_desc NOT LIKE '%Note: This table is obsolete%'; BEGIN RAISE; END; END LOOP; EXCEPTION WHEN OTHERS THEN RAISE; END backup; 解决方法
错误消息显示无法找到SCHEMA_RESTORE.RESTORE.有几种可能的原因:
>包(和程序)采用不同的模式,例如你把它编译为用户A但是试图将它们称为用户B. 我能看到的另一个问题是圆括号.如果你调用一个没有参数的程序,那么应该省略这些假设: { call SCHEMA_RESTORE.restore } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |