-4

詳細:

  • ユーザー名はscottです
  • パスワードは虎です
  • サーバー名-tnsnames.oraで見つけたprashanth-PCを指定しました-この時点で取得します

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

コードを使用して接続すると、機能しています。コードでは、データソースを空白のままにします。しかし、グリッドビューツールを使用して接続すると。サーバー名を尋ねています。どのサーバー名を指定すればよいかわかりません。参考までに、「tnsnames.ora」ファイルの内容を投稿しました。これをチェックしてください。Oracle10gを使用しています。

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = prashanth-PC)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

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


ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
) 
4

3 に答える 3

2

プロバイダーとして「.Net Framework Data provider for oracle」を使用していると仮定しています。
この場合、サーバー名には tnsnames.ora の「エイリアス」が含まれている必要があります。この場合は「XE」です。
tnsnames.ora ファイルが見つからないため、エラーが発生する可能性があります。
「TNS_ADMIN」環境変数が tnsnames.ora ファイルを含むディレクトリのパスを指すように設定していることを確認してください。

于 2012-01-19T07:16:35.903 に答える
0

私は今この問題に直面しました。私がやろうとしていたのは、Oracleクライアントのインストール場所の「Admin」フォルダーの下にあるTNSファイルフォルダーに共有を提供し、開発者がサーバー上のTNSentriesの健全性を確保することでした。

私が気付いたのは、「Admin」フォルダーに共有を適用すると、 「(LocalHostName)\Authenticated Users」が「Admin」フォルダーのセキュリティ コンテキストから削除されたことです。

デフォルトの権限を持つフォルダのセキュリティ コンテキストに「認証されたユーザー」を追加すると、エラーはなくなりました。

OS バージョン: Win 2012 DC Edition

Oracle クライアント クライアント: Oracle クライアント 11.2.0

于 2014-08-13T03:15:57.733 に答える
0

サーバー名には、マシンのホスト名ではなく、Oracle サービス名が必要です。サーバー名に XE を入力してみてください。これが失敗した場合:

  • 複数のtnsnames.oraファイルがあるかどうかを確認する
  • その場合は、すべてのtnsnames.oraファイルが同期していることを確認する、どの tnsnames.ora が使用されているかを確認してください - これは、パス変数を確認し、どのパスに tnsnames.ora の最初の言及があるかを確認することで実行できます。
  • また、Windows サービス リストから tns リスナー サービスが稼働していることを確認します。
于 2012-01-19T07:15:35.710 に答える