以前業務でoracle11gをインストールしてデータベースに接続したところ、
以下のエラーが発生しました。
「ORA-12154: TNS: 指定された接続識別子を解決できませんでした」
インストール後に設定を変更したのはtnsnames.oraのみでしたので、
原因はこの部分にある可能性が高いのですが、
記述内容(ポート番号、ホスト名など)は間違っていませんでした。
tnsnames.oraは以下のように記述していました。
-----------tnsnames.ora記述例ここから---------------
任意の名前 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle11g)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = サービス名)
)
)
-----------tnsnames.ora記述例ここまで---------------
調べたところ、内容ではなく記述の仕方に問題があったことがわかりました。
Oracle11gの場合、行の先頭にスペースがないとこのエラーが表示されるとのことでした。
以下のように行の先頭にスペースを入れて正しくインデントを設定したところ、
データベースに接続することができました。
-----------tnsnames.ora記述例ここから---------------
任意の名前 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle11g)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = サービス名)
)
)
-----------tnsnames.ora記述例ここまで---------------
tnsnames.oraの記述の際は注意が必要です。