【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