現在、Oracle db_link が実際に正しいサーバーを指していることを検証しようとしています。db_links を照会すると、TNSNames を参照する DB_link の定義を取得します。
select * from all_db_links;
次の結果が得られます。
所有者: user1
DB_LINK: DBL_xxx.world
ユーザー名: User2
ホスト: tnsEntry1
作成: 03-MAY-12
DB_link をテストすると、すべて正常に動作します。
select * from dual@"DBL_xxx.world";
ダミー:×
ただし、サーバーにアクセスできないため、tns エントリ tnsEntry1 が正しいサーバーを指していることを確認できません。
ローカルで、次を実行できます。
select sys_context ( 'USERENV', 'DB_NAME' ) db_name,
sys_context ( 'USERENV', 'SESSION_USER' ) user_name,
sys_context ( 'USERENV', 'SERVER_HOST' ) db_host
from dual;
同じコマンドをリモートで実行しようとしました:
select sys_context ( 'USERENV', 'DB_NAME' ) db_name,
sys_context ( 'USERENV', 'SESSION_USER' ) user_name,
sys_context ( 'USERENV', 'SERVER_HOST' ) db_host
from dual@DBL_xxx.world;
ただし、ローカル データのみが返されます。
リモート情報を確認する方法はありますか? または、SQL クエリから tnsnames を確認しますか?