異なる接続間のライブラリ間のクエリの相互運用性を実装する - 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;
これがお役に立てば幸いです