CREATE DATABASE LINK

CREATE DATABASE LINKはOracleでデータベースリンクを作成するSQLです。その使い方や確認方法、必要な権限などをご紹介します。

SQL

プライベート・データベースリンクを作成する。

CREATE DATABASE LINK dblink [CONNECT TO user IDENTIFIED BY password] [USING connect_string]

パブリック・データベースリンクを作成する。

CREATE PUBLIC DATABASE LINK dblink [CONNECT TO user IDENTIFIED BY password] [USING connect_string]

共有データベースリンクを作成する。

CREATE SHARED DATABASE LINK dblink [CONNECT TO user IDENTIFIED BY password] [USING connect_string]
dblink

作成するデータベースリンクの名前を指定する。

データベースオブジェクトの名前の長さは30バイトまでだが、データベースリンクの名前は例外的に128バイトまでの長さまで指定できる。

ローカルデータベースの初期化パラメータglobal_namesがtureに設定されている場合は、データベースリンク名が接続先リモートデータベースのグローバル名と一致している必要がある。 この場合、接続先リモートデータベースで SELECT * FROM GLOBAL_NAME;を実行した結果をそのままデータベースリンク名に指定すればよい。初期化パラメータglobal_namesがfalseに設定されている場合は、この限りではない。

user

接続先リモートデータベースのユーザを指定する。

password

接続先リモートデータベースのパスワードを指定する。パスワードを引用符で囲む必要はない。

connect_string

接続先リモートデータベースのネットサービス名を指定する。

スキーマ指定

データベースリンクを作成できるのは自分のスキーマ内だけである。

他のスキーマにデータベースリンクを作成することはできないので、CREATE DATABASE LINKにスキーマ名は指定できない。

データベースリンクの種類

データベースリンクには次の3種類がある。

データベースリンク 説明
プライベート・データベースリンク データベースリンクを作成したユーザだけが参照できるデータベースリンク
パブリック・データベースリンク すべてのユーザが参照できるデータベースリンク
共有データベースリンク ソースデータベースからターゲットデータベースへのひとつのネットワーク接続を使用する複数のセッションで共有可能なひとつのデータベースリンク

権限

プライベート・データベースリンクを作成するには、CREATE DATABASE LINKシステム権限が必要である。

パブリック・データベースリンクを作成するには、CREATE PUBLIC DATABASE LINKシステム権限が必要である。

使用例

CREATE DATABASE LINK foo.example.com CONNECT TO marina IDENTIFIED BY horiuchi USING 'example'

確認

作成したデータベースリンクは、ALL_DB_LINKS、DBA_DB_LINKS又はUSER_DB_LINKSで確認することができる。

SELECT DB_LINK FROM USER_DB_LINKS

データベースリンクで接続できるかどうかを確認するには、DUAL表を問い合わせて、結果が返ることを確認する。

SQL> SELECT * FROM DUAL@dblink1

D
-
X

SQL>

関連SQL