CREATE DATABASE LINKは、データベースリンクを作成するSQL文である。

他のユーザのスキーマにデータベースリンクを作成することはできない。

スポンサーリンク

構文

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

ソースデータベースからターゲットデータベースへのひとつのネットワーク接続を使用する複数のセッションで共有可能なひとつのデータベースリンクを作成する。

PUBLIC

パブリックデータベースリンクを作成する。パブリックデータベースリンクとは、すべてのユーザが参照できるデータベースリンクである。PUBLIC句の指定を省略した場合、プライベートデータベースリンクを作成する。プライベートデータベースリンクとは、データベースリンクを作成したユーザだけが参照できるデータベースリンクである。

dblink

作成するデータベースリンクの名前を指定する。データベースオブジェクトの名前の長さは30バイトまでだが、データベースリンクの名前は例外的に128バイトまでの長さまで指定できる。 他のユーザのスキーマにデータベースリンクを作成することはできないので、スキーマ名は指定できない。

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

user

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

password

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

connect_string

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

権限

プライベート・データベースリンクを作成するには、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で確認することができる。

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

SQL> SELECT * FROM DUAL@dblink1

D
-
X

SQL>
スポンサーリンク