2014-02-07 11:10:17 (Fri);
tnsnames.ora が見つからない場合の一番簡単な探し方。
(全バージョンで調べてませんので、できないのもあるかも。)
コマンドプロンプト開いて、
tnsping aaa(適当でOK)と入力して実行するだけ。
コマンドプロンプト
C:>tnsping aaa
TNS Ping Utility for 32-bit
Windows: Version 9.2.0.1.0 - Production on 07-FEB-2014 10:34:07
Copyright (c) 1997
Oracle Corporation. All rights reserved.
パラメータ・ファイルを使用しました:
C:\oracle\ora92\network\admin\sqlnet.ora
TNS-03505: 名前の決定に失敗しました。
sqlnet.ora と同じ場所にある事が多いのでその場所へいく。
ちなみにこれは Oracle9i のですが、
「C:\oracle\ora92\network\admin\」にあるということです。
(おまけ) tnsping ってなにか
おまけなので超初心者向け。
クライアントからOracleに接続する際には
ネットサービス名と呼ばれるものを利用します。
ネットサービス名は tnsnames.ora に記述します。
tnsnames.ora
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = service_name)
)
)
このネットサービス名、上記で言うと net_service_name は
正しく接続できるかな?(記述を間違えていないかな?)
と確認するのが tnsping です。
使ってみるとこんな感じ。
コマンドプロンプト
C:\>tnsping net_service_name
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 07-FEB-2014 11:05:05
Copyright (c) 1997 Oracle Corporation. All rights reserved.
パラメータ・ファイルを使用しました:
C:\oracle\ora92\network\admin\sqlnet.ora
エイリアスを解決するためにTNSNAMESアダプタを使用しました。
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = service_name)))
OK (110ミリ秒)
OKなので大丈夫だそうです。
NGだと記述が間違ってるかDBがおかしいかです。
最終更新:2014年02月07日 11:10