ローカルで実行されているアプリケーションで次のエラーが発生しています。
ORA-12514: TNS:リスナーは現在、接続記述子で要求されたサービスを認識していません
を使用して接続をテストしたところTNSPing
、正しく解決され、SQLPlus
接続を試みましたが、上記と同じエラーで失敗しました。 には次の構文を使用しましたSQLPlus
:
sqlplus username/password@addressname[or host name]
以下のことを確認しました:
- サーバー上の TNS リスナーが実行されています。
- サーバー上の Oracle 自体は実行されています。
この環境に何か変更が加えられたかどうかはわかりません。他にテストできるものはありますか?
ベストアンサー1
tnsnames.ora
この問題が発生しましたが、データベースに有効なサービス名があることを確認することで解決しましたSERVICE_NAME
。有効なサービス名を見つけるには、Oracle で次のクエリを使用できます。
select value from v$parameter where name='service_names'
次のようにアップデートしたらtnsnames.ora
:
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = *<validhost>*)(PORT = *<validport>*))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = *<servicenamefromDB>*)
)
)
それから私は走りました:
sqlplus user@TEST
成功しました。リスナーは基本的に、使用している service_name が DB によれば有効なサービスではないことを伝えています。
(*Win7 クライアント ワークステーションからリモート DB に sqlplus を実行していたのですが、DBA のせいです ;) *)