gpt4 book ai didi

sql - 当架构拥有一个同名的私有(private)数据库时,是否明确引用公共(public) DBLink?

转载 作者:行者123 更新时间:2023-12-04 15:43:25 28 4
gpt4 key购买 nike

我正在进行一个迁移项目,需要将多个 Oracle 数据库模式导入到现有数据库中。这个要求带来了一个有趣的冲突,我现在有两个 dblinks同名:

  • 一个是私有(private) dblink,它使用帐户A 访问Foobar 数据库
  • 另一个是 public dblink 到同一个 Foobar 数据库,它使用帐户 B 进行访问

Global Names 设置为 true,因此我无法更改这些 dblinks 的名称。


我已经通过反复试验发现,当登录到拥有私有(private) dblink 的架构时,会发生以下情况:

SELECT * 
FROM table@foobar;

将引用私有(private) dblink 而不是公共(public)的。但是对于我需要帐户 B 权限的情况,我不知道如何明确引用公共(public) dblink

有人知道我可以用来引用公共(public) @foobar 的语法吗?

最佳答案

来自 Oracle 文档。

Oracle first searches for a private database link in your own schema with the same name as the database link in the statement. Then, if necessary, it searches for a public database link with the same name.

我认为这无法以任何方式改变。不是我知道的或在文档中找到的。您可以创建公共(public)同义词,但仅当您需要使用 B 特定对象访问时才有效。无法为整个数据库链接创建同义词。

在 session 级别将 global names 转换为 False 并使用其他无效链接名称创建到 B 的新链接会不会更容易.如果您在 session 级别更改全局名称,则仅允许该 session 使用新链接。

关于sql - 当架构拥有一个同名的私有(private)数据库时,是否明确引用公共(public) DBLink?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34298167/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com