【问题标题】:How to reach database via another database that has link to that database如何通过链接到该数据库的另一个数据库访问数据库
【发布时间】:2023-02-02 17:42:48
【问题描述】:

Databases

嗨,让我们以这张图片为例。我想在 CBASE 上访问 ABASE。我可以在使用 BBASE 时到达它

SELECT * FROM TABLE@ABASE_LINK

我可以在使用 CBASE 时到达 BBASE

SELECT * FROM BBASE.table.

但是我如何在 CBASE 上到达 ABASE。

如果我尝试

SELECT * FROM BBASE.TABLE@ABASE_LINK

我收到以下错误

ORA-02019: 找不到远程数据库的连接描述 02019.00000 - “未找到远程数据库的连接描述” *原因:引用的数据库链接不存在。 *Action: 在运行 SQL 语句之前创建数据库链接。 行错误:1 列:21

【问题讨论】:

  • 您必须创建另一个数据库的 dblink
  • BBASE 和 CBASE 实际上是两个数据库,还是一个数据库中的两个模式? SELECT * FROM BBASE.table 建议后者,除非你有一个隐藏数据库链接的同义词。

标签: sql oracle dblink


【解决方案1】:
  • 如果您使用CREATE DATABASE LINK ...,则您仅为该用户创建一个私有数据库链接;所以CBASE 将无法看到属于BBASE 的私​​有数据库链接。
  • 如果您使用CREATE PUBLIC DATABASE LINK ...,那么您正在创建一个所有用户都可以使用的公共数据库链接。

您可能有一个私人数据库链接,因此其他用户将无法使用它。重新创建数据库链接,使其公开,然后您可以使用:

SELECT * FROM TABLE@ABASE_LINK

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多