12505 「service_name」と sid が矛盾しているため、エラーが発生します。解決策: 1. 「select INSTANCE_NAME from v$instance」を使用して、データベース内の現在の SID を取得します; 2. 取得した SID をデータベース プログラムの接続文字列に入力します。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
12505 プロンプトが表示されるのは明らかです。sid に対応するインスタンス ライブラリが見つかりません。つまり、Oracle の "service_name" が sid と一致しません。 。
#解決策の手順
1. 次のステートメントを実行します:
select INSTANCE_NAME from v$instance;インスタンス ライブラリの SID を取得します
2.次に、sid を使用してシステムにログインします
#ORA-12505:
before PL/SQL DEVELOPER および SQLPLUS を使用してデータベースにログインするのは問題ありませんが、アプリケーションが JDBC 経由で Oracle に接続すると正常に接続できず、ORA-12505 エラー リスナーは現在、接続記述子で指定された SID を認識しません。 ...が表示されます。 検索の結果、Oracle の service_name と sid_name が矛盾していることが判明しました。PL/SQL DEVELOPER と SQLPLUS は service_name を使用して接続し、アプリケーションは sid_name に従って接続するため、PL/SQL DEVELOPER と SQLPLUS は接続できます。プログラムは接続できません。 問題の説明: 今日、jdbc を使用して Oracle 10.2.0.1.0 データベースに接続すると、次のエラーが発生しました:Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153093120)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))しかし、データベースは次の方法で正常に接続できます。 plsql、または sqlplus を介してデータベースに接続できます。デバッグして関連情報を検索した後、問題の原因は次のようにわかります。jdbc がデータベースに接続するときは、次のものが必要です。データベースの services_name の代わりにデータベースの sid_name を使用するにはplsql を使用してデータベースに接続する場合は、データベースの services_name のみが必要なので、接続文字列の services_name を sid_name に変更します推奨チュートリアル: 「
Oracle ビデオ チュートリアル 」
以上がOracle の 12505 エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。