ORACLE エラーコード ORA-12154:TNS: 指定された接続識別子を解決できませんでした。 が表示される原因と対応について記載しています。
ORA-12154エラーが発生してしまったときの対応手順は、大きく以下の2つになります。
(1) tnsnames.ora の場所を確認する。
(2) tnsnames.ora に samplehost(例) というネット・サービス名を設定する。
バージョンによっては、ORA-12154のエラーメッセージは
TNS: 指定された接続識別子を解決できませんでした。
または
TNS: サービス名を解決できませんでした。
の二つがありますが、原因は同じです。
ここでつまずいてデータベース(DB)に繋げないと
システム開発についてはほぼ何もできなくなってしまいます。
以下、説明です。
そもそもORA-12154エラーが何を意味するか、というと
ORACLEデータベースの接続先に指定しているところが、どこかわかりませんよ。
と言うことになります。
例えばSQL*PLUSで
sqlplus user/pass@samplehost
でつなごうとしているとき、上記の"samplehost"が何なのかわからない。ということです。
これを定義しているのは、Windowsでは、ORACLEデータベースの
%ORACLE_HOME%/network/admin/tnsnames.ora
にあります。
%ORACLE_HOME%は、環境変数に設定していると思いますので
各PC端末を確認しましょう。
※個別に異なるので確認が必要です。
ちなみに、環境変数の確認は、
コンピュータを右クリックして「プロパティ」を選択
→「システムの詳細設定」を選択
→「システムのプロパティ」が表示される。「詳細設定」タブを選択
→下部にある「環境変数」をクリック
で、確認できます。
tnsnames.oraに、以下のように設定を行います。
例)
samplehost= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=oracle-server)(PORT=1521)) (CONNECT_DATA= (SID=orcl)))
本来samplehost とすべきところを
スペルミスでsaplehost などとしてしまい、ORA-12154エラーが発生することもありますので
まずスペルミスが無いか、を確認して、スペルミスでないようなら
tnsnames.oraに設定を追加しましょう。
ORACLEトップへ