Sqlplusのインストール(Ubuntu)
Oracleデータベース11g をDocker上で動かしている。
その Oracle Database 11g に Dockerの外から(ホストマシンから)アクセスするのに Sqlplusが必要になる。
Sqlplusのインストール
以下のサイトから2つの zipファイルをダウンロードする。
Instant Client Downloads for Linux x86-64 (64-bit)
- Basic Package(ZIP) instantclient-basic-linux.x64-21.1.0.0.0.zip
- SQL*Plus Package(ZIP) instantclient-sqlplus-linux.x64-21.1.0.0.0.zip
1)をダウンロードして、適当なディレクトリで展開する。instantclient_21_1ディレクトリができる。
2)をダウンロードして、適当なディレクトリで展開する。instantclient_21_1ディレクトリ、つまり、 同じ名前のディレクトリが作成されるので、instantclient_21_1(2) となるはずである。
2)でできたファイルを 1)のディレクトリの中に置く。その中に sqlplus も含まれる。
今回は、ホームディレクトリに oracleというディレクトリを作成し、 そこに instantclient_21_1 ディレクトリを置いた。
パスの設定
以下のように設定した。
~/.bashrc
# for Sqlplus
export SQLPATH=$HOME/oracle/instantclient_21_1/
export PATH=$PATH:$SQLPATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/oracle/instantclient_21_1
3つめのライブラリパスの設定は、sqlplusは起動時にライブラリ(libsqlplus.so)を 見つけにいくためである。
文字コードの設定 (2021.10.24追記)
~/.bashrc に以下の記述も加える。
export NLS_LANG=Japanese_Japan.AL32UTF8
このことにより、sqlplusが動作している端末が UTF-8 であることを Oracle11g に 伝えることになる。その結果、
- Oracleデータベースからのメッセージが日本語になる。
- sqlplusの動作している端末から送られる文字は UTF-8 であることを Oracleデータベースに伝えることになる。そのことで、保存する文字が文字化けしなくなる。
接続設定 (2021.10.24追記)
sqlplusで Oracleデータベースに接続するためには、接続設定が一致していなければならない。
クライアント側の設定(sqlplus) を以下のように設定した。
$HOME/bin/oracle/instantclient_21_3/network/admin/tnsnames.ora
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
これは、サーバー側の設定と同じである。
$ docker exec -it oracle11 /bin/bash
bash-4.2# cd /u01/app/oracle/oradata/dbconfig/XE
/u01/app/oracle/oradata/dbconfig/XE/tnsnames.ora
# tnsnames.ora Network Configuration File:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
起動
$ sqlplus system@localhost:1521
SQL*Plus: Release 21.0.0.0.0 - Production on Sun Jan 24 05:58:57 2021
Version 21.1.0.0.0
Copyright (c) 1982, 2020, Oracle. All rights reserved.
Enter password: [パスワード文字列]
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL>
[パスワード文字列]は、docker-compose up で起動したときに、画面に現れる。
カテゴリー: memo, OracleDB
タグ: install, oracle, sqlplus
カウント: 204