Oracle シノニムを使ってみよう

 2018.09.25  株式会社システムインテグレータ

今回はSI Object Browser(以下、OB)を使用して、シノニムを使ってみようと思います。
シノニム(SYNONYM)とはテーブルやビューなどに別の名前を振りたい場合に使います。
簡単に言うと”あだ名”を付けたい時などです。(EMPLOYEE→社員マスタ 等)では、このシノニムをOBで作成して操作してみたいと思います。

いまさら聞けない Oracleの基本 [初級編]

シノニムを作るには

オブジェクトリスト画面の左ツリーより[SYNONYM]を選択し、右のリスト上で[新規作成]ボタンを押下します。

Oracle シノニムを使ってみよう 1

- シノニムの新規作成画面を呼び出す -

押下するとシノニムの編集画面が表示されます。
シノニムの名前とどのオブジェクトを対象にするのかを入力します。
最後に [作成]を押すとシノニムが作成されます。

Oracle シノニムを使ってみよう 2

いまさら聞けない Oracleの基本 [中級編]
新規CTA

- シノニムの新規作成 -

構文と設定の概要

CREATE [OR REPLACE] [PUBLIC] SYNONYM [スキーマ.]シノニム名  FOR [スキーマ.]対象のオブジェクト名 [@データベースリンク名] ;

設定 説明
OR REPLACE 既存のシノニムを再作成します。
PUBLIC すべてのユーザーがアクセスできるパブリックシノニムになります。
@データベースリンク名 対象のオブジェクトが別のリモートデータベース上にある場合に指定します。

シノニムを使うには

下記はシノニム「社員マスタ」を使ってEMPLOYEEテーブルを参照しています。

Oracle シノニムを使ってみよう 3

- シノニムの利用 -

使い方は簡単ですね。
どちらかというと使いどころの方が悩ましいのではないでしょうか。
ここではどういうときに使うと効果的か幾つか記載しておきます。

主な使い方

・リモートデータベースを使用していて、都度DBリンク名を書くのが面倒な場合
・複数のスキーマを使用していていて、都度スキーマ名を書くのが面倒な場合
・セキュリティを考慮して、実オブジェクト名をエンドユーザーに知られたくない

みなさんがよく使う「ALL_TABLES」もシノニムです。
本来は「SYS.ALL_TABLES」ですがパブリックのシノニムを定義することにより、「SELECT * FROM ALL_TABLES」で参照を可能にしています。

Oracle シノニムを使ってみよう 4

- ALL_TABLESシノニム-

いかがだったでしょうか。今回はシノニムについての記事でした。
シノニムは上手く使用することで開発が楽になるオブジェクトです。
仕様変更やリプレースの際は、シノニムの利用を検討してみてください。

いまさら聞けない Oracleの基本

RELATED POST関連記事


RECENT POST「【OBトコ】DBの勉強」の最新記事


【OBトコ】DBの勉強

データベースのスキーマを理解する

【OBトコ】DBの勉強

データベース別インスタンスの関係性

【OBトコ】DBの勉強

ビューとマテリアライズド・ビューの違いを理解する

【OBトコ】DBの勉強

Oracle 表領域を拡張してみよう

Oracle シノニムを使ってみよう
新規CTA