ホームページ  >  記事  >  データベース  >  Oracle の 12505 エラーを解決する方法

Oracle の 12505 エラーを解決する方法

WBOY
WBOYオリジナル
2022-05-25 16:02:4315243ブラウズ

12505 「service_name」と sid が矛盾しているため、エラーが発生します。解決策: 1. 「select INSTANCE_NAME from v$instance」を使用して、データベース内の現在の SID を取得します; 2. 取得した SID をデータベース プログラムの接続文字列に入力します。

Oracle の 12505 エラーを解決する方法

このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle の 12505 エラーを解決する方法

12505 プロンプトが表示されるのは明らかです。sid に対応するインスタンス ライブラリが見つかりません。つまり、Oracle の "service_name" が sid と一致しません。 。

#解決策の手順

1. 次のステートメントを実行します:

select INSTANCE_NAME from v$instance;

インスタンス ライブラリの SID を取得します

Oracle の 12505 エラーを解決する方法

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。