有馬総一郎のブログ

(彼氏の事情)

2020年10月30日 15:02:42 JST - 3 minute read - Comments - SQL

SQL*Plusだけを個別に(スタンドアローン)でインストールする

Oracle SQL Developerはモッサリしてる。だからSQL*Plusを使いたい。そして、Oracle DBはインストールしなくていいから、SQL*Plusだけをインストールしたい。

ということでググるとそれらしき記事が見付かった。さすがGoogleである。

ダウンロード

さるがSQL*Plusって何?って思ったのでインストールしてみた。 - ponsuke_tarou’s blog を参考にインストール、設定。

Instant Client for Microsoft Windows (x64) 64-bitから、 instantclient-sqlplus-windows.x64-19.8.0.0.0dbru.zip instantclient-basiclite-windows.x64-19.8.0.0.0dbru.zip をダウンロードする。

instantclient-sqlplus-windows.x64-19.8.0.0.0dbruだけ解凍して sqlplus.exe 叩いた場合

---------------------------
sqlplus.exe - システム エラー
---------------------------
コンピューターに OCI.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。 
---------------------------
OK   
---------------------------

となってコマンドプロンプトが固まる。

instantclient-basiclite-windows.x64-19.8.0.0.0dbruもダウンロードして、同じフォルダに解凍する。同じく instantclient_19_8 のフォルダを作られる。

C:\app\oracleフォルダを作成して、その直下でも解凍した instantclient_19_8 を移動すれば良い。

ユーザー環境変数

環境変数を設定。

環境変数名
Path C:\app\oracle\instantclient_19_8;を追加
TNS_ADMIN C:\app\oracle\instantclient_19_8
NLS_LANG Japanese_Japan.JA16SJIS

接続文字列

個別に sqlplus インストールした場合、 tnsnames.ora をどこに置けば良いのか、と思ったがTNS_ADMIN直下に置けば良い。

もし、Oracle DBクライアントを既にインストールしていている場合などは

tnsnames.oraの場所を探す - tak_ism - アットウィキのようにtnsping aaaを叩いて 出力された sqlnet.ora のパスと同じ場所に置けば良い。

tnsnames.ora が読み取れなかったり、そこに記述のないサービス接続文字列を使って接続しようとすると

ORA-12154: TNS:could not resolve the connect identifier specified

と表示されて失敗する。

文字コード

接続先の文字コードがSJISの場合set NLS_LANG=Japanese_Japan.JA16SJIS。UTF-8の場合NLS_LANG=Japanese_Japan.AL32UTF8を設定する。

文字化けする例。NLS_LANGが設定されてない場合

C:\Users\arimasou16>sqlplus test_user/test_password@test_db

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Oct 28 20:05:49 2020
Version 19.8.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.

??????????: ?  10?  28 2020 19:27:14 +09:00


Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
?????????
SQL>

文字化けする例。文字コードが SJIS にもかかわらずNLS_LANGJapanese_Japan.AL32UTF8が設定されている場合。

C:\Users\arimasou16>sqlplus test_user/test_password@test_db

SQL*Plus: Release 19.0.0.0.0 - Production on 豌エ 10譛・28 20:07:58 2020
Version 19.8.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.

譛€邨よュ」蟶ク繝ュ繧ー繧、繝ウ譎る俣: 豌エ 10譛・28 2020 20:05:50 +09:00


Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
縺ォ謗・邯壹&繧後∪縺励◆縲
SQL> exit
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production縺ィ縺ョ謗・邯壹′蛻・妙縺輔l縺セ縺励◆縲

C:\Users\arimasou16>

となってしまう。成功すれば

C:\Users\arimasou16>sqlplus test_user/test_password@test_db

SQL*Plus: Release 19.0.0.0.0 - Production on 水 10月 28 20:42:11 2020
Version 19.8.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.

最終正常ログイン時間: 水 10月 28 2020 20:09:22 +09:00


Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
に接続されました。
SQL>

と表示される。