Oracle自体でプロシージャを実行しようとしているときに正常に動作します。しかし、私はjavaから同じプロシージャを呼び出すとき、私はPLS-00201を得ています。間違いがある場合は、親切に教えてください。ここでPLS-00201をJavaから実行するとPLSQLが呼び出される
java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00201: identifier 'PR_REJECT_FILE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
は私のプロシージャ呼び出しです:
CallableStatement cs=null;
try
{
cs = this.dteConn.prepareCall("{ call PR_REJECT_FILE (?,?,?) }");
cs.setString(1,status);
cs.setInt(2, fileid);
cs.setString(3,t_id);
cs.execute();
}
catch (Exception e)
{
e.printStackTrace();
}
ユーザーがそのデータベースに対するアクセス許可を持っているかどうかを確認してください。 – Balakumar
まず、この手順を所有しているかどうかを確認してください。ユーザーがプロシージャーの実行を許可していないかどうかを確認します。そして、プロシージャーにパブリック・シノニムがあるかどうかを確認します。それ以外の場合は、SCHEMA_NAME.PR_REJECT_FILEとします。ここで、schema_nameは所有者です。 – Mottor