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

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

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

シノニムを作るには

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

1

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

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

データベース開発に関するお役立ち資料

2

- シノニムの新規作成 -

構文と設定の概要

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

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

シノニムを使うには

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

3

- シノニムの利用 -

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

主な使い方

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

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

4

- ALL_TABLESシノニム-

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

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

RECENT POST「OBをトコトン極める」の最新記事


この記事が気に入ったらいいねしよう!