Oracle ORA-06508:PL/SQL:无法在包AR_receive_API_PUB过程中找到正在调用的程序单元

Oracle ORA-06508:PL/SQL:无法在包AR_receive_API_PUB过程中找到正在调用的程序单元,oracle,plsql,Oracle,Plsql,当一个自定义Oracle并发程序试图取消应用Oracle AR收据时,我遇到以下错误。请在下面找到代码片段。 现在,如果我要检查无效对象,我看不到任何与AR相关的包是无效的,包括AR_RECEIPT_API_PUB。 任何指示都会有帮助。 ORA-06508:PL/SQL:无法在包AR_receive_API_PUB过程中找到正在调用的程序单元 ar_receipt_api_pub.unapply(p_api_version => 1.0

当一个自定义Oracle并发程序试图取消应用Oracle AR收据时,我遇到以下错误。请在下面找到代码片段。 现在,如果我要检查无效对象,我看不到任何与AR相关的包是无效的,包括AR_RECEIPT_API_PUB。 任何指示都会有帮助。 ORA-06508:PL/SQL:无法在包AR_receive_API_PUB过程中找到正在调用的程序单元

ar_receipt_api_pub.unapply(p_api_version                     => 1.0
                          ,p_init_msg_list                   => fnd_api.g_true
                          ,p_receivable_application_id       => r_appn_cur.rcv_app_id
                          ,p_org_id                 => r_appn_cur.org_id
                          ,x_return_status                   => l_return_status
                          ,x_msg_count                       => l_msg_count
                          ,x_msg_data                        => l_msg_data);

如果包存在且没有错误,则可能是用户正在尝试使用它,无法访问它。只是为了验证,请尝试为包创建公共同义词并进行尝试。

您已确保设置了所有必需的api参数。
出现错误的原因可能是编译器无法找到包的确切声明。

这是否返回任何无效对象<代码>选择引用的所有者、引用的名称、引用的类型、AO.Status FROM DBA\U Dependencies AD INNER JOIN DBA\U OBJECTS AO on AO.Owner=AD.Owner和AO.Object\U name=AD.name,其中AD.name='AR\U RECEIPT\U API\U PUB'订单由AO.Status asc确定如果没有,则可能需要重新编译列表中的所有对象。某些对象可能只是“损坏”了,需要从所有错误中重新编译
SELECT*也可能显示一些有价值的东西。对我来说,听起来像Oracle应用程序(可能是EBS)。您是否向应用程序用户授予了执行权限?如果我记得的话,EBS中的PUB通常是同义词。因此,首先检查同义词first-select*from dba_同义词,其中同义词_name='AR_RECEIPT_API_PUB';它指向正确的那个吗?然后,在sqlplus中,“DESC AR_RECEIPT_API_PUB”并检查“UNAPPLY”过程是否存在,并且您已经提供了所有正确的参数。