编译 Oracle 表单时出错(加载块 P5_27_MAR_201709_43_49 时 PDE-PSD001 无法解决对 <未知程序单元> 的引用)
Posted
技术标签:
【中文标题】编译 Oracle 表单时出错(加载块 P5_27_MAR_201709_43_49 时 PDE-PSD001 无法解决对 <未知程序单元> 的引用)【英文标题】:Error while Compiling Oracle Form (PDE-PSD001 Could Not Resolve Reference to <Unknown Program Unit> While Loading Block P5_27_MAR_201709_43_49) 【发布时间】:2021-09-11 12:57:43 【问题描述】:我在编译 Oracle 表单时遇到错误。我正在使用带有 11g DB 版本的 Oracle Forms 版本 6i。我检查了所有对象,发现没有一个是无效的。问题在于 ON_CHECK_DELETE_MASTER 触发器,该触发器在创建主详细信息表单时自动创建。
我的触发代码是:
--
-- Begin default relation declare section
--
DECLARE
Dummy_Define CHAR(1);
--
-- Begin PAYMENTS detail declare section
--
CURSOR PAYMENTS_cur IS
SELECT 1 FROM INT_PAYMENTS_V I
WHERE I.ORDER_ID = :ORDERS.ORDER_ID;
--
-- End PAYMENTS detail declare section
--
--
-- Begin RETURNS detail declare section
--
CURSOR RETURNS_cur IS
SELECT 1 FROM INT_RETURNS_V I
WHERE I.ORDER_ID = :ORDERS.ORDER_ID;
--
-- End RETURNS detail declare section
--
--
-- Begin ADJUSTMENTS detail declare section
--
CURSOR ADJUSTMENTS_cur IS
SELECT 1 FROM INT_ORDER_ADJUSTMENTS_V I
WHERE I.ORDER_ID = :ORDERS.ORDER_ID;
--
-- End ADJUSTMENTS detail declare section
--
--
-- End default relation declare section
--
--
-- Begin default relation program section
--
BEGIN
--
-- Begin PAYMENTS detail program section
--
OPEN PAYMENTS_cur;
FETCH PAYMENTS_cur INTO Dummy_Define;
IF ( PAYMENTS_cur%found ) THEN
Message('Cannot delete master record when matching detail records exist.');
CLOSE PAYMENTS_cur;
RAISE Form_Trigger_Failure;
END IF;
CLOSE PAYMENTS_cur;
--
-- End PAYMENTS detail program section
--
--
-- Begin RETURNS detail program section
--
OPEN RETURNS_cur;
FETCH RETURNS_cur INTO Dummy_Define;
IF ( RETURNS_cur%found ) THEN
Message('Cannot delete master record when matching detail records exist.');
CLOSE RETURNS_cur;
RAISE Form_Trigger_Failure;
END IF;
CLOSE RETURNS_cur;
--
-- End RETURNS detail program section
--
--
-- Begin ADJUSTMENTS detail program section
--
OPEN ADJUSTMENTS_cur;
FETCH ADJUSTMENTS_cur INTO Dummy_Define;
IF ( ADJUSTMENTS_cur%found ) THEN
Message('Cannot delete master record when matching detail records exist.');
CLOSE ADJUSTMENTS_cur;
RAISE Form_Trigger_Failure;
END IF;
CLOSE ADJUSTMENTS_cur;
--
-- End ADJUSTMENTS detail program section
--
END;
--
-- End default relation program section
--
错误:(PDE-PSD001 无法解析对加载块 P5_27_MAR_201709_43_49 时的引用)
寻求建议。
【问题讨论】:
【参考方案1】:我相信您一定看过以下说明:
在更改 DB 对象 (Doc ID 1986731.1
) 后,无法针对 12c 数据库 (DB) 编译表单模块(例如 fmb、mmb、pll)
【讨论】:
感谢您的回复。我在同一版本的数据库上编译表单,而您共享的文档 ID 用于不同版本的数据库,即表单是在 11g 数据库上创建并在 12c 上编译的,这会引发此错误。虽然我在 11g 上这样做。您能提出一些解决方法或解决方案吗?以上是关于编译 Oracle 表单时出错(加载块 P5_27_MAR_201709_43_49 时 PDE-PSD001 无法解决对 <未知程序单元> 的引用)的主要内容,如果未能解决你的问题,请参考以下文章