MacでSQLPlusとSQLLoaderを使用する
目的
- バッチ処理等でsqlコマンドやsqlldrコマンドを発行するコードをMacでも動くようにする
インスタントクライアントをダウンロードする
https://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
からダウンロードします。
なお、SQLLoaderは12gのみで利用できます。
-
必須ライブラリ
- instantclient-basic-macos.x64-12.2.0.1.0-2.zip
-
SQLPlus(SQLPlusを利用したい場合)
- instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip
-
SQLLoader(SQLLoaderを利用したい場合)
- instantclient-tools-macos.x64-12.2.0.1.0-2.zip
ダウンロードしたファイルを解凍する
解凍すると必要なライブラリが「instantclient_12_2」ディレクトリに作成されます。
$ unzip instantclient-basic-macos.x64-12.2.0.1.0-2.zip
$ unzip instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip
$ unzip instantclient-tools-macos.x64-12.2.0.1.0-2.zip
$ ls
instantclient_12_2/
instantclient_12_2を任意の場所に移動する
適当にmvしてください。
tnsnames.oraを作成する
tnsnames.oraを作成します。
以下はtnsnames.oraの例です。
oracle11 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xe)
)
)
環境変数を設定する
SQLPlusやSQLLoaderで使用する環境変数を設定します。
.bashrcや.bash_profileに書いておくと便利です。
export ORACLE_HOME=<インスタントクライアントのディレクトリ>
export PATH=\$ORACLE_HOME:\$PATH
export DYLD_LIBRARY_PATH=\$ORACLE_HOME
export TNS_ADMIN=<tnsnames.oraがあるディレクトリ>
動作確認する
- SQLPlus
$ sqlplus TEST_USER@oracle11
SQL*Plus: Release 12.2.0.1.0 Production on Sun Feb 10 20:31:08 2019
Copyright (c) 1982, 2017, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL>
- SQLLoader
$ sqlldr TEST_USER@oracle11 control=TEST_TABLE.ctl
Password:
SQL*Loader: Release 12.2.0.1.0 - Production on Sun Feb 10 20:34:08 2019
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
Path used: Conventional
Commit point reached - logical record count 1
Table "TEST_USER"."TEST_TABLE":
1 Row successfully loaded.
Check the log file:
TEST_TABLE.log
for more information about the load.
できました!!!