【发布时间】:2012-08-22 01:48:23
【问题描述】:
我有一个模式 A、包 B 和过程 C。B 在 A 模式中,C 在 B 的包主体中。
当我说:
Begin
Exec B.C;
END;
但是当我说:
Begin
Exec A.B.C;
END;
Error report:
ORA-06550: line 2, column 12:
PLS-00302: component 'B' must be declared
ORA-06550: line 2, column 4:
PL/SQL: Statement ignored
我以 A 身份登录,所以它在 A 的架构中。 和 SELECT * FROM user_OBJECTS WHERE OBJECT_NAME = 'B'; 显示包和包体都有效。
【问题讨论】:
-
这个问题的答案是:永远不要用 SCHEMA 名称命名您的同义词。在这种情况下,有一个私人同义词和一个公共同义词会导致问题。
-
你应该把它写成答案的形式。
-
什么是
Exec?
标签: oracle plsql schema package procedure