TNSファイルを読み取り、それを使いやすいデータ構造で表示するAPIはありますか?
すべてのTNSエントリのリストを取得したいと思います。これは機能しますが、特にエレガントではありません!
grep '^[a-zA-Z].*=' /etc/tnsnames.ora | sed 's/[ =].*//'
もう1つの、それほど単純ではない解決策はANTLRです。ANTLRを使用して解析できますtnsnames.ora
。ANTLR文法リストtnsnames.ora
ページには、構文解析できる文法がありますsqlnet.ora
。listener.ora
TNSPingがあなたにとってもっと役立つかどうかはわかりません。次のように出力されます。
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production
on 01-MAR-2009 02:02:33
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)
(HOST = myhostname)(PORT = 1521)) (CONNECT_DATA = (SID = mydb)))
OK (80 msec)
問題は、TNS名をpingに渡す必要があることです。これは、シナリオで可能かどうかはわかりません。