1

詳細は次のとおりです。

  1. Windows 7 64ビットVM(vmware)のOTNダウンロードページからOracle InstantClient11.2.0.2.0をインストールしました。
  2. リモートのOracleデータベースに接続しようとしていますが、TNSを使用して1つのプログラムに正常に接続できますが、SQL*Plusやその他のアプリケーションには接続できません。
  3. schema @ servicename、passwordなどを使用してSQL * Plusに接続しようとすると、上記のエラーが発生します。
  4. SQL Developerを介して接続するには、通常、基本的な接続情報を使用し、tnsnamesに依存しませんが、通常の接続を試行すると、次のようになりますio error: unknown host specified。TNSプロトコルを使用すると、SQLDeveloperはデータベースに正常に接続してクエリを実行できます。
  5. 他のプログラムから試してみると、SQL*Plusで発生したのと同じエラーが発生します。tnsnamesのサービス名で試行する場合も同じです。

これは明らかに、一方の方法で機能し、もう一方の方法では機能しないため、非常に苛立たしいものです。インスタントクライアントを使用するためのすべての通常の手順に従いました。instantclientを含むディレクトリがPATHに追加され、TNS_ADMINエントリも作成され、ディレクトリがtnsnames.oraファイルに追加されました。

4

3 に答える 3

1

気まぐれに、以前にインスタントクライアントでセットアップしたWindows2003サーバーに一致するようにセットアップのすべてを変更しました。主な変更点は、インスタントクライアントをドライブのルートにあるフォルダ(プログラムファイル/ oracle / etcではない)に配置することでしたが、c:/ oracle、oracleはディレクトリパスの文字にこだわったという他の投稿を見たことがあります、多分スペースもノーノーですか?

また、他のマシンにあった環境変数、ORACLE_HOME(インスタンスのルートへ)、SQL_PATH(同じ)をさらに追加し、ディレクトリのルートを、instantclientのあるフォルダーだけでなくPATHシステム変数に追加しました。ファイル。とにかく、私はそれが機能していることを嬉しく思います、しかしこれらの変更のいずれかがそれであった可能性があります-

于 2011-08-17T16:43:00.387 に答える
0

ProcessMonitorを使用して、sqlplusプロセスが実行していることを確認できます。私の場合、TNS_ADMINは正しく定義されていましたが、誤って、tnsnames.oraとsqlnet.oraに愚かな「.txt」拡張子が付いていました。これらのファイルを作成したときに、デフォルトでメモ帳に追加されました。また、「Windowsエクスプローラー」にはデフォルトで「既知のファイルタイプの拡張子を隠す」オプションが設定されているため、名前の誤りはまったく明らかではありませんでした。

于 2012-02-12T09:18:39.323 に答える
0

12.1インスタントクライアントをインストールしました。私の場合、問題は\ network \ admin\tnsnames.oraファイルを作成することで解決しました。これが私が使用したPowerShellです。

$source = "C:\Users\USER1\Desktop\tnsnames.ora"
$target = "C:\oracle\product\12.1.0\client_1\network\admin"
mkdir $target
copy-item $source $target
于 2016-08-09T19:43:29.267 に答える