java - 在 oracle 中引用另一个模式中的表
问题描述
我想在没有模式前缀或更改会话的情况下引用另一个模式中的多个表。
我有以下查询 -
Select * from schema1.app_table
在具有模式前缀的包中有多个这样的查询。
我必须将表导出到不同的模式。我真的不想更改所有包中的模式前缀。
我尝试了同义词,不幸的是它没有用。
解决方案
没有魔法。
您正在更改表所在的架构。请注意我对“改变”一词的使用。这意味着您必须“更改”引用表的所有内容。
如果你讨厌质量,你可以试试这个:在旧模式中创建一个同义词来引用新模式中的表。在您的示例中,我们将新模式称为“blammySchema”,我们将表称为“kapow”。
以下是一些步骤:
- 将 schema1 中的所有表“导出”到 blammySchema(所有适用的表)。
- 对于“导出”到 blammySchema 的每个表,在 schema1 中创建一个引用 blammySchema 中的表的同义词。
这是一个同义词示例:
create synonym schema1.kapow for blammySchema.kapow
创建所有同义词后,重新编译您的包。
推荐阅读
- apache - Apache服务器无法下载具有副本作为文件名的文件
- android - 如何使视图从昏暗的背景中可见
- ios - 在匹配正则表达式时获取单个元素
- c# - 如何修复控制台应用程序异常“System.Drawing.dll 中的‘System.ArgumentException’”
- android - BasicNetwork.performRequest:意外响应代码 413
- cassandra-3.0 - 如何为 Cassandra 中的角色提供“仅插入”权限?
- python - 迭代相同长度行文件的每个字符串的索引,同时从各个索引中生成每个值的新字符串
- node.js - 如何知道客户端已连接 Eventhub
- linux - 检查进程是否已经死亡
- javascript - 跟踪已选中的 CheckBox