首先
我是oracle新手,没有本地oracle专家来帮助我。
这是我的问题
我有一些SQL脚本必须发布到许多Oracle实例中。
脚本创建存储过程。
在其中创建存储过程的模式不同于包含从中读取存储过程的表的模式。
在不同的实例上,包含表的模式具有不同的名称。
显然,我不想编辑脚本以使其针对不同的实例进行定制。
向我建议解决方案可能是建立同义词。
是否可以在每个实例上为表架构定义同义词,并在我的脚本中使用同义词?
是否还有其他方法可以使每次工作都无需编辑脚本?
感谢您的任何帮助。

最佳答案

知道什么版本的Oracle,但知道as of 10g--No, you can't make a synonym for a schema会有所帮助。
您可以为表创建同义词,这将使您无法在脚本中指定架构。但这意味着同义词在每个实例上都必须相同才能使用...

另一个选择是用变量替换模式引用,因此在脚本运行时会提示用户输入模式名称。我更喜欢这种方法,因为它工作量少。这是一个可以在SQLPlus中工作的示例:

CREATE OR REPLACE &schema1..vw_my_view AS
  SELECT *
    FROM &&schema2..some_other_table

这样做的好处是,运行脚本的人员只会为每个变量提示一次,而不是每次遇到变量时都提示一次。所以要小心错别字:)

关于Oracle:是否可以为模式创建同义词?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3780046/

10-13 04:24