以下のような定数値を持つ2つの変数を持つパッケージがあります。
person_name CONSTANT VARCHAR2 (15) := 'Adam';
person_city CONSTANT VARCHAR2 (15) := 'Houston';
このパッケージ変数は、データベース全体でストアド プロシージャや他のパッケージなどで使用されます。
これらの変数には、呼び出しているクライアント サーバーに基づいた値が必要です。そして、私はこれらすべてを以下のような表に維持しています
Server Parameter Value
Server1 person_name Adam
Server1 person_city Houston
Server2 person_name Victor
Server2 person_city Dallas
そのため、パッケージ/SP が server1 から参照/呼び出されたときに、person_name と person_city を Adam と Houston にデフォルト設定する必要があります。同様に、パッケージ/SP が server2 から参照/呼び出される場合、person_name と person_city を Victor と Dallas にします。
これはどのように行うことができますか?とにかく、特定のSPを呼び出しているか、パッケージ変数を使用しているクライアントは、Oracle側にありますか? 以下のような値を取得する関数を書きました。
in package,
person_name CONSTANT VARCHAR2 (15) :=GETPARAMVALUE(person_name);
person_city CONSTANT VARCHAR2 (15) :=GETPARAMVALUE(person_city);
関数では、テーブルをクエリします
select * from parameterstable where parameter = (function's input) and servername = ????
ここでサーバー名を知るにはどうすればよいですか?
ヘルプ/ヒントをいただければ幸いです。ありがとう