PL/SQLでのオーバーライド
870220Jun 21 2011 — edited Jul 1 2011お世話になります。加藤です。
PL/SQLにて実現可能かをご存じでしたら教えて頂きたいことがあります。
前提
①Functionがある(PKG_1とPKG_2)
②「SELECT PKG_1 FROM DUAL」のように、「PKG_1」を呼び出す。
③「PKG_1」は内部で「PKG_2」を呼び出し、戻り値を「PKG_1」の呼び出し元に返す。
④すべて同じスキーマ上に資源はある。
要望
上記環境に、スキーマの追加やシノニム等を駆使して、「PKG_1」に手を入れることなく、「PKG_2」の呼び出しをオーバーライドすることは出来ないでしょうか。
もしくは「PKG_1」に手を入れるのであれば極力修正が少ない方法は無いでしょうか。
ただし、インスタンスを2つにしたり、スキーマを2つ等にしたりのように、同一の「PKG_1」が2箇所以上には無いようにしたいと思っています。
具体的には下記の様に取得できたらと思います。
①AAAユーザーで「SELECT PKG_1 FROM DUAL」と実行すると、'Original'と結果が返ってくる。
②BBBユーザーで「SELECT PKG_1 FROM DUAL」と実行すると、'Modify'と結果が返ってくる。
何か方法やヒント等あればご教示頂けないでしょうか。
Edited by: user12983379 on 2011/06/20 23:54
例示のSQL文に誤りがあった為、修正しました。