Oracle は、異なる接続間のデータベース間クエリ、dblink! を実装します。

異なる接続間のライブラリ間のクエリの相互運用性を実装する - dblink

在程序猿的工作中,经常会遇到sql的操作,经常操作sql的工作会遇到这个问题;以下内容提供了:(创建方式),(使用查询),(报错解决)的内容

なぜ作成されたのでしょうか?

接続ライブラリ A が別の接続ライブラリ B にアクセスする場合、この 2 つのライブラリの間に関係を確立する必要があります。この機能は Oracle の dblink を通じて実現できます。


作成方法は?

  • 1. 最初の方法: PLSQL ツールの作成

ツールを開き、データベース リンクをクリックして新しいリンクを作成し、対応するコンテンツを入力して、[適用] をクリックして作成します。

ここに画像の説明を挿入します

  • 2. 2 番目の方法: SQL ステートメント

ライブラリ A の SQL ウィンドウでライブラリ B との dblink 接続を作成します。

create database link 别名	--数据库别名
  connect to 数据库用户名 identified by 数据库密码		--分别对应用户名和密码
  using '域名:端口号/数据库实例';	--域名:端口号/数据库实例



--举个例子
create database link linkDb	--数据库别名
  connect to DB_TEST identified by DB_TEST	--分别对应用户名和密码
  using '127.0.0.1:1521/ORCL';	--域名:端口号/数据库实例
  • 3. 3 番目の方法: SQL ステートメントのまま

ライブラリ A の SQL ウィンドウでライブラリ B との dblink 接続を作成します。

create database link 别名
    connect to 数据库用户名  identified by 数据库密码	//分别对应用户名和密码
    using '(DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 域名)(PORT = 端口))
        )
        (CONNECT_DATA =
            (SERVICE_NAME = 数据库实例)
        )
    )';

--举个例子
create database link linkDb
    connect to DB_TEST identified by DB_TEST//分别对应用户名和密码
    using '(DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        )
        (CONNECT_DATA =
            (SERVICE_NAME = orcl)
        )
    )';

使い方(クエリ)は?

A データベース SQL ウィンドウでのクエリ


select * from B表的@dblink连接;

--举个例子
select * from tableName@linkDb;

エラーが報告されました。どうすればよいですか?

クエリ中に、次のようにエラーが報告されます。

[66000][12154] ORA-12154: TNS: 无法解析指定的连接标识符

以下のスクリーンショット:

ここに画像の説明を挿入します

解決策 -解決策についてはブログ投稿を参照してください。

しかし、ここで問題が発生します。Oracle をインストールしていないため、現時点では 3 番目の方法を使用して dblink を作成するだけです。

リンクを削除する方法

DROP PUBLIC DATABASE LINK dblink连接;

DROP PUBLIC DATABASE LINK @linkDb;

これがお役に立てば幸いです

~感谢您的光临~

おすすめ

転載: blog.csdn.net/m0_50762431/article/details/123634073