It's raining cats and dogs.

無駄なことなんてないはず

ORA-12154: TNS: 指定された接続識別子を解決できませんでした

sqlplusなどでoracle clientを使ってoracleにアクセスするときによく出るアレ。これがでるとなんだか憂鬱。 たぶんネットに溢れかえっているであろう内容だけど、備忘録。

$ sqlplus <ユーザーID>/<パスワード>@<SID>

SQL*Plus: Release 11.2 Production on 月 9月 30 20:58:17 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-12154: TNS: 指定された接続識別子を解決できませんでした


ユーザー名を入力してください:

今回は、tnsnames.oraを読み込めていないのが原因だった。oracleはtnsnames.oraはどのパスで見つけに行くのか。

  1. 環境変数 TNS_ADMIN で設定したディレクトリ配下
  2. $ORACLE_HOME/network/admin 配下

とのこと。 今回はtnsnames.oraが

$ORACLE_HOME/lib/network/admin/tnsnames.ora

となっていたのとTNS_ADMINが設定されていなかったのが原因。なぜこのパスになってしまったのかはわからないけど、
とりあえずこのエラーが出た時に少し萎えなくなれた気がする。