我想从schema2访问schema1的所有表和包。 我也给了补助金。如下所示。
grant execute on hr.GetName_Proc_IN to hr2;
通过这个,我可以用" hr。"
执行这样的操作begin
hr.UnitTest_RnD_PKG.GetName_Proc_IN('Hi','Welcome');
end;
但我不想使用" hr。"并希望执行如下:
begin
UnitTest_RnD_PKG.GetName_Proc_IN('Hi','Welcome');
end;
投掷错误。 无论如何我可以这样做..感谢你的帮助。感谢
答案 0 :(得分:1)
最简单的方法是在schema1中创建一个同义词:
create synonym UnitTest_RnD_PKG for hr.UnitTest_RnD_PKG
如果你不想手工为很多对象输入这个,你可以使用这个查询创建一个sql脚本:
select 'create synonym ' || object_name || ' for ' || owner || '.' || object_name || ';'
from dba_objects
where object_type in ('PACKAGE','TABLE')
and owner = 'schema2'
或创建一个从目录中创建同义词的过程。