Oracleデータベースに接続したいwithout Oracle Clientのインストール。
私がダウンロードしました:
次に、_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ファイルの認識に問題があるのはなぜですか?
コマンドは次のとおりです。
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.ora
にHost
がないため、エラーが発生しますが、別のエラーであり、少なくともTNSエイリアスとして使用しようとしていることがわかります。適切に定義されていれば、データベースに接続できます。
$ Oracle_HOME/network/admin/tnsname.oraを手動で編集しないでください。「netmr」を使用してローカル名を作成してください。同じ理由はわかりませんが、動作しません。