Oracle エラーの対応方法・解決方法を解説します

ORA-12154

エラーメッセージ  

 ORA-12154: TNS: サービス名を解決できませんでした。
 ORA-12154: TNS: 指定された接続識別子を解決できませんでした
 ORA-12154: TNS:could not resolve service name  
 ORA-12154: TNS:could not resolve the connect identifier specified
 
 

基本的なエラーの内容  

接続のために指定したネット・サービス名が解決できない場合に出力されます。

 
 

確認事項および対応  

  1. tnsnames.orasqlnet.oraファイルが %ORACLE_HOME%\network\admin ディレクトリに1つずつ存在、または tnsnames.ora ファイルのみが存在することを確認。
  2. tnsnames.oraを開き、指定したネット・サービス名に関する接続情報が定義されており、同じネット・サービス名が2つ以上存在しないことを確認。
  3. (sqlnet.oraファイルが存在する場合)tnsnames.oraファイルに記述されているネット・サービス名のドメイン(.worldなど)がsqlnet.oraファイルのNAMES.DEFAULT_DOMAINパラメータに設定されているドメイン名と等しい(またはどちらにもドメイン名が指定されていない)ことを確認。
  4. (sqlnet.oraファイルが存在する場合)sqlnet.oraファイルのNAMES_DIRECTORY_PATHパラメータに正しい値(tnsnames.oraファイルを使用する場合はTNSNAMES)が設定されている。
  5. 同一端末に異なるバージョンなど複数のOracleがインストールされている場合、意図しているtnsnames.oraを参照していない可能性がある。(各インストール先ディレクトリ毎にtnsnames.oraが存在する為)
    解決するために、正しいPATHが設定されているかを確認する。(ORACLE_HOMEのPATHの順番を確認する)
  6. TNS_ADMIN環境変数が設定されていない、もしくは正しく設定されている。通常TNS_ADMIN環境変数は設定されていませんが、設定されている場合は参照すべきtnsnames.oraファイルのディレクトリが指定されていることを確認。
 
 

詳細  

指定された接続文字列tnsnames.oraファイル内に無い場合だけでなく、参照すべき tnsnames.ora ファイル自体が無い場合にもこのエラーが発生します。Windowsの場合は拡張子が表示されない状態になっているために、ファイルをコピーした場合などに「tnsnames.ora.ora」になっているケースもあります。
Windowsで同一端末内に複数バージョンのOracleを使用している場合は、各バージョンの%ORACLE_HOME%\\network\admin\tnsnames.oraファイルを同じ状態にする(コピー)ことで解決する場合があります。(上述のPATHの設定が原因の場合)
また、sqlplus ではなく、ODBC接続などを使用する場合にこのエラーが発生する時には、まず sqlplus をコマンドラインで実行して同じエラーになるかを確認することをお勧めします。(ODBC接続でのみ発生する場合はODBCの設定内容が間違っている可能性が高いです)

 
 

関連エラー  

ORA-12514: TNS: リスナーは接続記述子にあるSERVICE_NAMEを解決できませんでした。
ORA-12541: TNS: リスナーがありません。

 
 

powered by Quick Homepage Maker 3.66
based on PukiWiki 1.4.7 License is GPL. QHM

最新の更新 RSS  Valid XHTML 1.0 Transitional