【ORACLE】データベースリンクを作成・変更・削除するSQL

ここではORACLEデータベースでデータベースリンク(dblink)を作成する方法を紹介します。

データベースリンクの確認方法は↓で紹介していますので参考にしてください。
>>【ORACLE】データベースリンクの一覧を確認するSQL

データベースリンクとは

あるデータベースから別のデータベースへアクセスするためのオブジェクトです。

データベースリンクは、接続元に作成します。接続先には作成しません。

データベースリンクを使うことで別のデータベースのテーブルやプログラムにアクセスすることが出来ます。

データベースリンクは略してdblinkと呼ばれることもあります。

データベースリンクを使って参照するSQL

データベースリンクを使って表を参照するときは「テーブル名@データベースリンク名」という形でテーブルをを指定します。

次のSQLでは、testserverというデータベースリンクでTAB1表にアクセスしています。

SELECT * FROM tab1@testserver;

データベースリンクを作成するSQL

データベースリンクの作成は、CREATE DABASE LINK文を使います。

データベースリンクを作成するには「CREATE DATABASE LINK」または「CREATE PUBLIC DATABASE LINK」権限が必要です。削除には「DROP PUBLIC DATABASE LINK」権限が必要です。

システム権限の付与の方法については↓で紹介していますので参考にしてください。
>>【ORACLE】システム権限を付与・取消するSQL

CREATE DABASE LINK文の基本構文

CREATE DATABASE LINKの基本構文は次の通りです。

CREATE [PUBLIC] DATABASE LINK データベースリンク名
CONNECT TO ユーザー名 IDENTIFIED BY パスワード
using '接続文字列';

・データベースリンクを全ユーザーで共有する場合は「PUBLIC」を指定し、パブリックデータベースリンクを作成します。

・「CONNECT TO ユーザー名 IDENTIFIED BY パスワード」で接続先のユーザーとパスワードを指定します。

・「using ‘接続文字列’」でtnsnames.oraに書いてある接続文字列を指定します。

CREATE DABASE LINK文のSQLサンプル

CREATE DATABASE LINKのSQLサンプルを紹介します。

次のSQLでは、データベースリンク名を「testlink」とし、USER1で接続しています。接続先はtestserverです。

CREATE DATABASE LINK testlink
CONNECT TO user1 IDENTIFIED BY test
using 'testserver';

パブリックデータベースリンクとして作成する場合は次のSQLのようにPUBLICを指定します。

CREATE PUBLIC DATABASE LINK testlink
CONNECT TO user1 IDENTIFIED BY test
using 'testserver';

データベースリンクを変更するSQL

データベースリンクで接続するユーザーのパスワードが変更されたときはALTER DATABASE LINK文でデータベースリンクを変更します。

ALTER DATABASE LINK testlink
CONNECT TO user1 IDENTIFIED BY test
;

データベースリンクはパスワード以外は変更できません。変更が必要な場合は、一度削除してから新規に作成します。

パブリックデータベースリンクの変更は次のSQLのように、PUBLICを指定します。

ALTER PUBLIC DATABASE LINK testlink
CONNECT TO user1 IDENTIFIED BY test
;

データベースリンクを削除するSQL

データベースリンクを削除するときは、DROP DATABASE LINK文を使います。

DROP DATABASE LINK testlink;

パブリックデータベースリンクを削除するときは、PUBLICを指定します。

DROP PUBLIC DATABASE LINK testlink;

まとめ

データベースリンクの作成はCREATE DATABASE LINK文、変更はALTER文、削除はDROP文で行います。

データベースリンクを共有する場合はPUBLICを指定し、パブリックデータベースを作成しましょう。

データベースリンクを作成するときは、どのユーザで接続するか決めるか、新たにデータベースリンク用のユーザーを作成します。

ユーザーの確認や作成方法は↓で紹介していますので参考にしてください。
 ・【ORACLE】ユーザー(スキーマ)の一覧を確認するSQL
 ・【ORACLE】ユーザー(スキーマ)を作成・変更・削除するSQL