96

SQL Developer を使用して Oracle データベースに接続しようとしています。

.Net oracle ドライバーをインストールし、tnsnames.oraファイルを次の場所に配置しました。
C:\Oracle\product\11.1.0\client_1\Network\Admin

tnsnames.ora で次の形式を使用しています。

dev =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = idpdev2)
    )
  )

SQL Developer で新しい接続を作成しようとすると、オプションとして TNS 名が表示されません。

足りないものはありますか?

4

7 に答える 7

179

SQL Developerは、次の場所でこの順序でtnsnames.oraファイルを検索します

  1. $HOME/.tnsnames.ora
  2. $TNS_ADMIN/tnsnames.ora
  3. レジストリの TNS_ADMIN 検索キー
  4. /etc/tnsnames.ora (Windows以外)
  5. $ORACLE_HOME/network/admin/tnsnames.ora
  6. LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME_KEY
  7. LocalMachine\SOFTWARE\ORACLE\ORACLE_HOME

どの SQL Developer が使用されているかを確認するshow tnsには、ワークシートでコマンドを発行します。

tnsnames.ora ファイルが認識されない場合は、次の手順を使用します。

  1. TNS_ADMINという環境変数を定義して、tnsnames.ora ファイルが含まれるフォルダーを指すようにします。

    Windows では、これは[コントロール パネル] > [システム] > [システムの詳細設定] > [環境変数... ] に移動して行います。

    Linux では、ホーム ディレクトリの .profile ファイルにTNS_ADMIN変数を定義します。

  2. OS がこの環境変数を認識していることを確認します

    Windows コマンド ラインから: echo %TNS_ADMIN%

    Linux から: echo $TNS_ADMIN

  3. SQL Developerを再起動します

  4. SQL Developer で Connections を右クリックしNew Connection...を選択します。ドロップダウン ボックスで接続タイプとしてTNSを選択します。tnsnames.ora からのエントリがここに表示されるはずです。
于 2009-01-08T17:17:32.887 に答える
32

SQL 開発者を開きます。Tools -> Preferences -> Databases -> Advanced に移動し、Tnsnames ディレクトリを明示的に設定します。

私の TNSNAMES は正しく設定されており、Toad、SQL*Plus などに接続できましたが、SQL Developer を機能させるにはこれを行う必要がありました。インストールも面倒だったので、おそらくWin 7の問題だったのでしょう。

于 2011-08-09T23:18:44.600 に答える
16

次の図に示すように、 SQLDeveloperで参照Tools --> Preferencesします。tnsnames.oraが存在

ここに画像の説明を入力してください

する[設定]オプション。次に、[ OK ]をクリックします。 下の図に示すように。expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory


ここに画像の説明を入力してください

完了しました!

これで、 TNSnamesオプションを介して接続できます。

于 2012-07-23T12:33:48.047 に答える
16

TNSPING を実行して接続を確認することで、使用されている tnsnames.ora ファイルの場所をいつでも確認できます (9i 以降)。

C:\>tnsping dev

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-JAN-2009 12:48:38

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = DEV)))
OK (30 msec)

C:\>

場合によっては、tnsnames.ora で作成したエントリに問題があり、システムがそれを見つけられないことがあります。とはいえ、tns_admin 環境変数を設定することは良いことだと思います。複数のオラクル ホームを持つシステムでどの tnsnames ファイルが使用されているかを正確に判断する際に発生する避けられない問題を回避できるからです。

于 2009-01-08T19:56:13.503 に答える
2

ジェイソンが述べた手順は非常に優れており、機能するはずです。ただし、SQLDeveloperには少しひねりがあります。tnsnames.oraファイルを初めて読み取るときに、接続仕様(ホスト、サービス名、ポート)をキャッシュします。その後、元のエントリがtnsname.oraファイルから削除されても、仕様は無効になりません。SQL Developerを終了して再起動した後も、キャッシュは保持されます。これは、状況を処理するためのそのような非論理的な方法ではありません。tnsnames.oraファイルが一時的に使用できない場合でも、SQL Developerは、元の仕様が正しい限り、接続を確立できます。問題は彼らの次の小さなひねりに伴う。SQL Developerは、接続を解決するときに、tnsnames.oraファイル内のサービス名を大文字と小文字を区別する値として扱います。したがって、以前はエントリ名ABCDを持っていた場合。ファイル内のworldをabcd.worldという名前の新しいエントリに置き換えた場合、SQLDeveloperはABCD.worldの接続仕様を更新しません。abcd.worldをまったく別の接続として扱います。オラクル製品が、明示的に大文字と小文字を区別しないオラクルが開発したファイル形式のコンテンツを大文字と小文字を区別して扱うことに驚かないのはなぜですか?

于 2010-04-13T22:30:26.580 に答える
1

Sql Developer で、Tools->preferences->Datababae->advanced->Set Tnsname directory を tnsnames.ora を含むディレクトリに設定します。

于 2012-05-22T14:16:12.393 に答える
0

私の場合、上記の変更はどれも違いはありませんでした。コマンド ウィンドウで TNS_PING を実行できましたが、SQL Developer は tnsnames.ora の場所を特定できませんでした。

私の場合 (Windows 7 - 64 ビット - Enterprise) の問題は、Oracle インストーラーが [スタート] メニューのショートカットを間違ったバージョンの SQL Developer に指定していたことです。インストーラーに付随する 3 つの SQL Developer インスタンスがあるようです。1 つは %ORACLE_HOME%\client_1\sqldeveloper\ にあり、2 つは %ORACLE_HOME%\client_1\sqldeveloper\bin\ にあります。

インストーラーは、単純に機能しない bin ディレクトリ内のバージョンを指すスタート メニュー ショートカットをインストールしました。SQL Developer を起動するたびにパスワードを要求され、接続メカニズムとして TNS を選択したときに行った選択を覚えておらず、空白のリストが表示されました。また、他の投稿で参照されているデータベースの詳細設定に TNS ディレクトリ フィールドがありません。

古い Start ショートカットを破棄し、 %ORACLE_HOME%\client_1\sqldeveloper\sqldeveloper.exe へのショートカットをインストールしました。その変更により、私の場合は問題が修正されました。

于 2014-03-24T19:42:52.977 に答える