Jdbc Java中的“PL/SQL:语句被忽略”错误

Jdbc Java中的“PL/SQL:语句被忽略”错误,jdbc,plsqldeveloper,grant,database-permissions,java-stored-procedures,Jdbc,Plsqldeveloper,Grant,Database Permissions,Java Stored Procedures,当我调用Java文件中特定模式的PL/SQL时,它将被执行并检索结果。但是,当我在不同模式的同一Java文件中调用另一个PLSQL时,它会显示一个错误,即: Message: `ORA-06550: line 1, column 7: PLS-00201: identifier 'TEST2' must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored` 示例:在x模式和y模式中存在两个过程,即A和B 我在t

当我调用Java文件中特定模式的PL/SQL时,它将被执行并检索结果。但是,当我在不同模式的同一Java文件中调用另一个PLSQL时,它会显示一个错误,即:

Message: `ORA-06550: line 1, column 7: PLS-00201: identifier 'TEST2' must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored` 
示例:在x模式和y模式中存在两个过程,即A和B

我在test.java文件下调用它:

CallableStatement csforST= connection.prepareCall("{ call A() }"); 
csforST.execute();
它很好用

但当我打电话时:

CallableStatement cs= connection.prepareCall("{ call B() }"); 
cs.execute();

它显示一个错误,表示必须声明B。

非常感谢Griffey,你让我开心。是的,格里菲说的是对的。它很简单,但花了一天时间才找到。因为我对调用存储过程是新手

实际上,将有一个用户名和密码的连接。我正在使用的用户名没有其他架构的权限。因此,创建了一个新连接,该连接具有对该模式的访问权限,然后调用另一个进程。它现在可以正常工作了:

我想这对像我这样的先发球员会很有用


Thank Griffey

通常表示缺少数据库授权或同义词。当然,Robuust有两个过程,即x模式中存在a和B,我在测试中调用y模式。java文件CallableStatement csforST=connection.prepareCall{call a};csforST.execute;//工作正常//但是当我调用CallableStatement cs=connection.prepareCall{call B};cs.execute;//它显示一个错误,表示B必须声明为Griffey:database grant或synonymn means?。我已经检查了数据库模式的连接,它是连接的。我正在使用SQLdeveloper,因为它显示了一个插件符号,告诉我们它已连接到数据库。为了连接到模式x,要能够调用模式y拥有的过程B,模式y需要将B上的EXECUTE授予x;,x需要把它称为y.B或者创建一个同义词create同义词B代表y.B;只需将其称为B。如果可以连接到每个模式,则应该能够在SQLDeveloper中实现这一点。