Oracle:是否可以为模式创建同义词?

AJ.*_*AJ. 6 oracle schema synonym

首先

我是一个神谕新手,我没有当地的神谕大师来帮助我.

这是我的问题/问题

我有一些SQL脚本必须发布到许多Oracle实例.脚本创建存储过程.
创建存储过程的模式与包含存储过程正在读取的表的模式不同.

在不同的实例上,包含表的模式具有不同的名称.

显然,我不想编辑脚本以使它们针对不同的实例进行定制.

有人向我建议,解决方案可能是建立同义词.

是否可以在每个实例上定义表模式的同义词,并在我的脚本中使用同义词?

是否还有其他方法可以在不编辑脚本的情况下完成这项工作?

感谢您的任何帮助.

raj*_*tro 5

是的,您可以为架构创建同义词。

select ksppinm, ksppstvl from x$ksppi a, x$ksppsv b where a.indx=b.indx and ksppinm like '%schema%synonym%'
ALTER SYSTEM SET  "_enable_schema_synonyms" = true SCOPE=SPFILE;
STARTUP FORCE
show parameter synonym
Run Code Online (Sandbox Code Playgroud)

假设您已经有一个名为 ORA 的模式...

CREATE SCHEMA SYNONYM  ORASYN for ORA;   -- create synonym for schema
CREATE TABLE ORASYN.TAB1(id number(10)); -- create table in schema
Run Code Online (Sandbox Code Playgroud)

更多信息请参见:https://dbaclass.com/article/how-to-create-synonym-for-a-schema/