shellでSQL*Plus実行結果を取得の方法

シェルスクリプトでは、sqlplus実行結果を取得するために以下を利用することができます:

  1. sqlplusの出力結果を一時ファイルへリダイレクトして、そのファイルの中身を読み込む。
# 将sqlplus的输出重定向到临时文件
sqlplus username/password@database <<EOF >output.txt
SELECT * FROM table_name;
EOF

# 读取临时文件的内容
result=$(cat output.txt)
echo $result
  1. sqlplusの出力は、コマンド置換を使用して変数に割り当てることが可能です。
# 使用命令替换将sqlplus的输出赋值给变量
result=$(sqlplus -s username/password@database <<EOF
SET PAGESIZE 0;
SET FEEDBACK OFF;
SELECT * FROM table_name;
EXIT;
EOF)

# 打印变量的值
echo $result

上記の例では、sqlplusのオプション「-s」を用いることでsqlplusの出力メッセージの表示を抑止し、クエリ結果のみを表示することができます。また、「SET PAGESIZE 0」オプションと「SET FEEDBACK OFF」オプションを使用することで、クエリ結果のフォーマットやフィードバックメッセージを抑止できます。

※上記サンプル中のusername、password、databaseは実際に使用するデータベースのログイン情報とデータベース名に置き換えてください。また、SELECT * FROM table_nameも実際に実行したいクエリ文に置き換えてください。

bannerAds