web-dev-qa-db-ja.com

SQLPlusをtnsnames.oraに接続する方法

Oracleデータベースに接続したいwithout Oracle Clientのインストール。

私がダウンロードしました:

  • 「インスタントクライアントパッケージ-基本」および
  • 「インスタントクライアントパッケージ-SQL * Plus」

次に、_C:\Oracle\instantclient_にフォルダーを作成し、すべてのパッケージを抽出しました。

私は_system environment_のように設定されています:

_Path - C:\Oracle\instantclient NSL_LANG - with properly key Oracle_HOME - C:\Oracle\instantclient Oracle_SID - C:\Oracle\instantclient TNS_ADMIN - C:\Oracle\instantclient_

次に、_tnsnames.ora_の設定で_C:\Oracle\instantclient_ファイルを作成しました

そして、cmdにコマンドを入れたとき:

_sqlplus user/password @Host_

次のようなメッセージがあります。

_ERROR: ORA-12560: TNS:protocol adapter error_

しかし、私が次のようにしようとしたとき:

sqlplus user/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=address to Host)(Port=1521))(CONNECT_DATA=(SID=address to SID)))

すべてが正常に機能します。 SQLでtnsnames.oraファイルの認識に問題があるのはなぜですか?

6
KamilK

コマンドは次のとおりです。

sqlplus user/password@Host

パスワードと@Host部分の間にスペースを入れないでください。

スペースがあると、@Hostをログイン後に実行するスクリプトとして扱い、ローカルに接続しようとするため、TNSエラーが発生します。 (ログインしないので、Hostは存在するかどうかを確立するために評価されることはないため、この時点では事実上ノイズです)。

C:\>sqlplus -l -s x/y @Host
ERROR:
ORA-12560: TNS:protocol adapter error


SP2-0751: Unable to connect to Oracle.  Exiting SQL*Plus

スペースを削除すると、TNSエイリアスとしてHostを探します。

C:\>sqlplus -l -s x/y@Host
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified


SP2-0751: Unable to connect to Oracle.  Exiting SQL*Plus

tnsnames.oraHostがないため、エラーが発生しますが、別のエラーであり、少なくともTNSエイリアスとして使用しようとしていることがわかります。適切に定義されていれば、データベースに接続できます。

5
Alex Poole

$ Oracle_HOME/network/admin/tnsname.oraを手動で編集しないでください。「netmr」を使用してローカル名を作成してください。同じ理由はわかりませんが、動作しません。

0
yxh