Oracle SQL Developerでtnsnames.oraを使用します


137

Oracle SQL Developerを評価しています

tnsnames.oraが入力tnspingされ、で定義された接続への接続がtnsnames.ora正常に機能します。それでも、SQL Developerは接続を表示しません。

Oracle SQL Developer Soarsによると、

Oracleクライアントソフトウェアとtnsnames.oraファイルがマシンにすでにインストールされている場合、Oracle SQL Developerは、tnsnames.oraで定義されたネットサービス名から接続ナビゲーターを自動的に生成します。

TNS_ADMIN環境変数も設定しようとしましたが、SQL Developerを再起動した後も接続が表示されません。

何か案は?
SQL Developerとtnsnames.oraをうまく使っている人はいますか?


Oracle SQL Developerをダウンロードしてインストールし、既存のOracle 11gデータベースに接続しました。しかし、Oracleクライアントソフトウェアもダウンロードしてインストールする必要があるようですが、Windows 10を使用している場合はどのソフトウェアを使用しますか?
VoodooChild 2016

回答:


219
  • sqldeveloper参照Tools --> Preferences画像の下に示すように、。

    SQLDeveloperのアクセス設定

  • では環境設定オプションのtnsnames.ora存在。expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory
  • 次に、下の図に示すように、[ OK ]をクリックします。
    tnsnames.oraはDrive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN

    SQLDeveloper更新tnsnamesディレクトリ

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


4
皆さん、この古い(しかし非常に役立つ)投稿のほんの少しの更新:Windowsでシンボリックリンクを使用しないでください。SQL開発者はそれを使用する方法を知らないようです。時間を無駄にさせました。それがあなたのものを保存することを願っています。
Hellday5432 2013

@ Hellday5432-はい、そうです。SQL Devは、ショートカットを理解しないJavaで実行されます。たとえば、ファイルを開くときに、ショートカットを使用してディレクトリにジャンプすることはできません。
ケントパワー14

5
Windowsショートカット!=シンボリックリンク。howtogeek.com/howto/16226/…–
Matt Lachman

Oracle SQL Developerをダウンロードしてインストールし、既存のOracle 11gデータベースに接続しました。しかし、Oracleクライアントソフトウェアもダウンロードしてインストールする必要があるようですが、Windows 10を使用している場合はどのソフトウェアを使用しますか?
VoodooChild 2016

SQL Developerバージョン1.5.5にTnsnanesディレクトリオプションが表示されません。
Amit Chaurasia

24

(残念ながら以前は見つけられなかった)同様の質問に対するこの優れた回答は、問題の解決に役立ちました。

参照されている回答からコンテンツをコピーしています:

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

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

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

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

Windowsでは、[コントロールパネル]> [システム]> [システムの詳細設定]> [環境変数]に移動してこれを行います
。Linuxでは、ホームディレクトリの.profileファイルでTNS_ADMIN変数を定義します。

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

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

Linuxから:echo $ TNS_ADMIN

今すぐSQL Developerを再起動します。SQLDeveloperで[接続]を右クリックし、[新しい接続...]を選択します。ドロップダウンボックスで接続タイプとしてTNSを選択します。tnsnames.oraからのエントリがここに表示されます。


3
久しぶりですが、回答の関連部分をここで引き出せますか?万が一その答え(または質問)が削除される場合に備えて。
Dennis Meng

1
基本的には、TNS_ADMINシステム変数の設定に丸められます(SQL Developerが最初にそこを検索するため〜)、SQL Developerを再起動した後、[新しい接続]を選択し、[接続タイプ]ドロップダウンリストで[基本]ではなく[TNS]を選択します。tnsnamesは問題なく表示されますが、接続が自動的に入力されることを期待すべきではありません(私にはそうでした)
hello_earth

検索は私を彼女に連れて行った、それで著者への言及がすでにあるので回答を更新しました@DennisMeng
TheGameiswar

7

私は同じ問題を抱えており、tnsnames.ora他のすべてのツールで問題なく動作しましたが、SQL Developerはそれを使用しませんでした。ここで提供されているリンクの解決策を含め、見つけたWeb上のすべての提案を試しました。
何もうまくいきませんでした。

これは、データベースがバックアップコピーのキャッシュされたことが判明したtnsnames.oraようにtnsnames.ora.bk2tnsnames09042811AM4501.baktnsnames.ora.bkなどが挙げられる。これらのファイルは、平均的なユーザーによって読み取り可能ではなかったです。

sqldeveloperが名前のパターンマッチングであり、これらのバックアップコピーの1つを読み込もうとしていたのではないかと思います。そのため、正常に失敗し、ドロップダウンリストには何も表示されません。

解決策は、すべてのファイルを読み取り可能にするか、バックアップコピーを削除するか、Adminディレクトリから移動することです。


それはおそらくまさにあなたが見ているものです。SQL PlusとSQL Developerはどちらもtnsnamesを参照/解析/読み取りします。そのため、tnsnameが悪い場合は、カスケードダウンして問題を引き起こす可能性があります。
thatjeffsmith 14


0

macOSの新しいバージョンでは、も設定する必要がありjava.library.pathます。これを行う最も簡単で安全な方法は、~/.sqldeveloper/<version>/sqldeveloper.confファイルを作成し、そのように設定することです:

AddVMOption -Djava.library.path=<instant client directory>

[1] https://community.oracle.com/message/14132189#14132189

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.