java - 引用oracle中另一个模式中的表

标签 java sql oracle12c

我想引用另一个架构中的多个表,无需架构前缀或更改 session 。

我有以下查询 -

Select * from schema1.app_table 

在具有模式前缀的包中存在多个类似的查询。

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

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

最佳答案

没有什么魔法。

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

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

以下是一些步骤:

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

这是一个同义词示例:

create synonym schema1.kapow for blammySchema.kapow

创建完所有同义词后, 重新编译你的包。

关于java - 引用oracle中另一个模式中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54774965/

相关文章:

mysql - SQL 查询比较 3 个表

mysql - 这个 SQL 查询有什么问题?语法错误

macos - 在 Macbook Pro (OS X Yosemite) 上设置 Oracle 数据库

oracle - ORA-04036 : PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT

java - Logback 在 Weblogic 12c 中不打印任何日志

java - 无论如何只注释 JAXB 的必填字段

sql - 配置单元错误,在减法查询中出现 EOF 错误

java - 在大量插入 SQLLDR 后获取或检索生成的 PK

Java:ExecutorService 在特定队列大小后阻止提交

java - Java 中的惰性集合