5

Oracleデータベースにアクセスするには、PLSQLDeveloperを使用する必要があります。データベースに接続しようとすると、次のエラーが発生します。ORA-12154: TNS:could not resolve the connect identifier specified.コマンドラインからSQLPLUSを使用してデータベースに接続でき、 tnspingは正常に戻りますが、PLSQLDeveloperが機能しない理由がわかりません。正しいtnsnames.oraファイルとそこにある接続文字列を使用しています。 tnspingが使用するものと同じであるため正しいです。

誰かがこれを修正するために私が何ができるか考えていますか?私はこの特定のエラーについて他のスレッドを調べましたが、運がありませんでした。

tnsnames.ora

    ORCL =
      (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = MININT-AIVKVBM)(PORT = 1521)) 
      (CONNECT_DATA = 
        (SERVER = DEDICATED) 
        (SERVICE_NAME = orcl)
      )
    )

sqlnet.ora

     SQLNET.AUTHENTICATION_SERVICES= (NTS)
     NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

sqlpusコマンドライン イメージはこちら

PLSQL Developer Connection Preferences画像はこちら

4

12 に答える 12

32

答えは、PLSQL Developerフォルダを「ProgramFiles(x86)」から「ProgramFiles」フォルダに移動するだけでした。奇妙なことです。

于 2012-10-11T14:19:08.187 に答える
3

このエラーは非常に一般的であり、多くの場合、データベースへの接続を確立しようとすると最初に発生します。私はORA-12154を修正するためにそれらの6つのステップを提案します:

  1. インスタンス名がtnsnames.oraに正しく入力されていることを確認してください。
  2. インスタンス名またはデータベース名の末尾に制御文字を含めないでください。
  3. TNSエントリ周辺のすべてのパランセシスは適切に終了する必要があります
  4. sqlnet.oraのドメイン名エントリは、完全なデータベース名と競合してはなりません。
  5. それでも問題が解決しない場合は、tnsnames.oraにTNSエントリを再作成してみてください。
  6. 最後に、SQL *NetEasy構成ユーティリティを使用して新しいエントリを追加できます。

詳細情報:http ://turfybot.free.fr/oracle/11g/errors/ORA-12154.html

于 2013-02-17T16:13:59.857 に答える
1

コメントを追加できないので、これを投稿して完成させようと思っただけです。tufyの答えは正しいです。それは、実行中のアプリケーションへのパスの括弧(括弧)に関係しています。

ネットワーク層が、Oracleに接続しようとしている実行可能ファイルへのパスに括弧が含まれているプログラムの場所を解析できないという既存のネットワークバグがあります。

Oracleに提出されたバグ3807408が参照しています。

ソース

于 2013-09-05T14:34:26.973 に答える
1

プログラムファイルx86とプログラムファイルの両方にplsql開発者をコピーして貼り付けます。クライアントが他のパーティション/ドライブにインストールされている場合は、plsql開発者もそのドライブにコピーします。デスクトップショートカットではなく、plsql開発者フォルダから実行します。

究極の解決策!チル

于 2017-02-28T08:38:55.313 に答える
0
  • それは機能しなかったので、私はoracle sqldeveloperに切り替えました、そしてそれは問題なく動作しました(1分以内に接続を確立しました)。
  • このリンクからMSAccessに接続するアイデアが得られたので、Oracle sql Developerでユーザーを作成し、Toadで接続しようとしましたが、機能しました。

または2番目の解決策

Toadの接続画面でホストとポートを指定することにより、TNSではなくDirectを使用して接続を試みることができます

于 2013-06-24T14:23:10.633 に答える
0

私にとっては、tnsnames.ora接続識別子のフォーマットが正しくありませんでした。コメントのtnsnames.oraの例に示されているように、識別子文字列のインデントが必要です。

于 2013-07-31T14:44:53.197 に答える
0

追加したかっただけです。これは、Instant Client for 10をインストールしてから、完全インストールが必要であることに気づき、並列ディレクトリに再度インストールすることによっても発生する可能性があります。なぜこれが壊れたのかわかりません。

于 2013-10-28T21:05:58.770 に答える
0

また、上記の解決策に加えて、tnsname oraファイルが存在する場所を確認し、環境変数のパスと比較してください。

于 2014-06-19T15:37:28.880 に答える
0

仕事で問題がありました。Oracleサーバーに「パッチが適用」されており、使用しているデータベースの1つは、TNSNamesエントリではなく、基本接続を介して接続できませんでした。データベースが稼働していて、管理者はデータベースが稼働していることを確認できました。

さらに、データベースへの接続にTNSを使用したアプリケーションも機能しません。

見つかった問題は、TNSファイルのデータベース名が正しくなかったが、何らかの理由で何年も機能していることでした。名前を修正すると、修正されました。Oracle SQL Developerは、更新した後も古いTNSエントリを使用し続けており、1つのDB接続に対してのみ再インストールする必要はありません。データベースが作成されたとき、他のデータベースよりも小さい名前が付けられ、TNSNamesファイル内のカットアンドペーストアクションによって混乱したようです。私たちが調査している間、それがどのように機能したかは誰にもわかりませんが、オラクルのパッチは名前が正しい必要があることを保証しました

名前の例としては、「DBName.Part1.Part2」という名前が付けられていましたが、実際にはDB名は「DBName」でした。

于 2014-11-05T09:58:10.300 に答える
0

OracleホームからPLSQLDeveloperMainフォルダにtnsnamesファイルとsqlnetファイルをコピーして貼り付けるだけです。以下のクエリを使用して、Oracleホームを取得します

select substr(file_spec、1、instr(file_spec、'\'、-1、2)-1)ORACLE_HOME from dba_libraries where library_name ='DBMS_SUMADV_LIB';

于 2015-10-18T02:04:35.250 に答える
0

Windows7からアクセス可能なCentOS7とOracle11GR2を実行しているVMでも同じ問題が発生しました。解決策はおかしいです。ローカルマシンでは、DBを指すtnsnamesのサービス名の前にスペースがあり、スペースを削除した後、接続できます。

簡単な例。

間違ったtnsnames。

[これは空のスペースです]XE=(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XE)))

EXTPROC_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)))(CONNECT_DATA =(SID = PLSExtProc)(PRESENTATION = RO)))

正しいtnsnames。

XE =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XE)))

EXTPROC_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)))(CONNECT_DATA =(SID = PLSExtProc)(PRESENTATION = RO)))

于 2017-04-07T14:20:04.123 に答える
-1

ORA-12154:TNS:指定された接続識別子を解決できませんでした(PLSQLDeveloper)

回答:ORACLEDATABASEをインストールしたフォルダに移動します。たとえばE:\oracle\product\10.2.0 [or as your oracle version]\db-1\network\ADMIN、2つのファイル(1)sqlnet.ora、(2)tnsnames.oraをコピーして、このフォルダーを閉じます。ORACLEDEVELOPERをインストールしたフォルダに移動します。たとえばE:\DevSuitHome_1\NETWORK\ADMIN、2つのファイルの名前を(1)sqlnet.ora、(2)tnsnames.oraに変更し、コピーした2つのファイルをここに貼り付ければOKです。

于 2014-10-10T09:39:10.143 に答える