シェルからsqlplusを使ってOracleのデータを取得する方法、サンプル
-
カテゴリ:
- DB
シェルスクリプト(shell)を使ってOracleのデータを取得する方法をご紹介します。
LinuxのコマンドでOralceへSQLを発行するには、SQL*Plusを使う方法があります。
SQL*Plusの使い方
構文
SQL*Plusの構文と使用例は以下の通りです。
#! /bin/bash
#SQL*PLUSの構文
sqlplus -s USERNAME/PASSWORD@HOST[:PORT][/SERVICE_NAME] <<EOT
-- ここにSQLを記載
exit;
EOT
実際のサンプルも載せておきます。
#! /bin/bash
#SQL*PLUSのSELEC文のサンプル
sqlplus -s user01/pwd001@localhost:1521/db_01 <<EOT
SELECT COUNT(*) FROM M_USERS;
exit;
EOT
#実行結果
COUNT(*)
----------
12000
その他に、ホスト名を指定する以外にも、SIDで接続することも可能です。
#! /bin/bash
sqlplus -s USERNAME/PASSWORD@SID <<EOT
-- ここにSQLを記載
exit;
EOT
「error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory」が出た時の対処法
sqlplusを実行して以下のエラーが出る場合があります。
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
対処法としては、環境変数(LD_LIBRARY_PATH)にOracle Instant Client のSQL*Plusのディレクトリのパスを通す必要があります。
シェルクリプトい以下の一行を追加してください。
※お使いの環境によりSQL*Plusのディレクトリのパスは異なるので、自身の環境のパスを通すようにしてください。
export LD_LIBRARY_PATH=/usr/lib/oracle/19.6/client64/lib
投稿日:2021-07-30
更新日:2021-07-30