我有一个模式A,包B和过程C. B在A模式中,C在B的包体中。为什么不能执行SCHEMA_NAME.PACKAGE_NAME.PROCEDURE,Oracle
,当我说这工作得很好:
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的模式。 和 SELECT * FROM user_OBJECTS WHERE OBJECT_NAME ='B'; 显示包和包体都有效。
那么这个问题的答案是: 永远不要用SCHEMA名字命名您的同义词。 在这种情况下,有一个私人同义词和一个导致问题的公共同义词。 – user1617237
你应该把它放在答案的形式。 – DCookie
什么是Exec? –