在Oracle中的另一个架构中引用表

时间:2019-02-19 21:10:22

标签: java sql oracle12c

我想在另一个架构中引用多个表,而没有架构前缀或更改会话。

我有以下查询-

Select * from schema1.app_table 

在带有模式前缀的程序包中有多个类似的查询。

我必须将表导出到其他模式。我真的不想更改所有软件包中的架构前缀。

我尝试了同义词,但不幸的是它没有用。

1 个答案:

答案 0 :(得分:1)

没有魔术。

您正在更改表所在的架构。 注意我使用“更改”一词。 这意味着您必须“更改”所有引用表的内容。

如果您讨厌质量, 您可以尝试以下操作:在旧模式中创建一个引用新模式中的表的同义词。 在您的示例中 让我们将新模式称为“ blammySchema”,然后将表称为“ kapow”。

以下是一些步骤:

  1. 将所有表从schema1“导出”到blammySchema(所有适用的表)。
  2. 对于“导出”到blammySchema的每个表,在schema1中创建一个引用blammySchema中的表的同义词。

这是一个同义词示例:

create synonym schema1.kapow for blammySchema.kapow

创建所有同义词后, 重新编译您的软件包。