ORA-06508: PL/SQL: 在包 AR_RECEIPT_API_PUB 过程中找不到正在调用的程序单元
Posted
技术标签:
【中文标题】ORA-06508: PL/SQL: 在包 AR_RECEIPT_API_PUB 过程中找不到正在调用的程序单元【英文标题】:ORA-06508: PL/SQL: could not find program unit being called in Package AR_RECEIPT_API_PUB Procedure Unapply 【发布时间】:2014-07-30 20:05:37 【问题描述】:当自定义 Oracle Concurrent 程序之一尝试取消应用 Oracle AR 收据时,我收到以下错误。请在下面找到代码 sn-p。 现在,如果我要检查无效对象,我看不到任何与 AR 相关的包无效,包括 AR_RECEIPT_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);
【问题讨论】:
这会返回任何无效对象吗?SELECT Referenced_Owner, Referenced_name, Referenced_Type, AO.Status FROM DBA_Dependencies AD INNER JOIN DBA_OBJECTS AO on AO.Owner = AD.Owner and AO.Object_name = AD.name WHERE AD.name = 'AR_RECEIPT_API_PUB' ORDER BY AO.status asc;
如果没有,可能需要重新编译列表中的所有对象,有些东西可能只是“损坏”并且需要构建
asktom.oracle.com/pls/asktom/… SELECT * FROM ALL_Errors;
也可能显示一些有价值的东西。
对我来说听起来像是 Oracle 应用程序(可能是 EBS)。您是否授予 APPS 用户执行权限?
如果我记得,EBS 中的 _PUB 通常是同义词。所以,首先检查同义词 - select * from dba_synonyms where synonym_name = 'AR_RECEIPT_API_PUB';它指向正确的吗?然后,在 sqlplus 中,“DESC AR_RECEIPT_API_PUB”并检查程序“UNAPPLY”是否存在,并且您提供了所有正确的参数。
【参考方案1】:
如果包存在并且没有错误,可能用户正在尝试使用它,无法访问它。只是为了验证,尝试为包创建公共同义词并尝试它。
【讨论】:
【参考方案2】:您是否确保设置了所有必需的 api 参数。 您收到错误可能是因为编译器无法找到包的确切声明。
【讨论】:
以上是关于ORA-06508: PL/SQL: 在包 AR_RECEIPT_API_PUB 过程中找不到正在调用的程序单元的主要内容,如果未能解决你的问题,请参考以下文章