PUTTYでSHELLスクリプトを使用してSQLクエリを実行し、上部にヘッダーとメッセージ行を含む電子メール本文のテーブル形式で結果を送信する必要があります。これまでこれを書いていますが、結果を表形式で取得することはできません。
#! /bin/ksh
sqlplus -s user/pass @sid > /dev/null << EOF
whenever sqlerror exit 4;
set newpage 0
set space 0
set feedback off
set head off
set echo off
set pagesize 0
set serverout on
set trimspool on
set linesize 3000
spool $CSVFILE
select * from table;
spool off;
exit 0;
EOF
mailx -s "Subject Line" [email protected] < $CSVFILE
exit 0
SQLは正常に実行され、データはCSVFILEに格納されます。私が望む結果は、表形式で電子メール本文の電子メールアドレスに送信し、テーブルの上に次のメッセージ行も含める必要があります。 おおよその形式のメールの例
エラーはありません。ただし、SET HEAD ON後もCSVFILEにヘッダーはありません。また、「mail -a(content-type)」ソリューションを試しましたが、「-a」を使用するとエラーが発生します。
ベストアンサー1
シェルは良いツールではありません。
より良い解決策は、データをファイルにダンプしてからファイルを使用または再フォーマットすることawk
です。perl
python
より良い方法は、コンテンツ全体をデータベースに作成するか、perl
データベースpython
に接続し、SQL文を実行し、データをダウンロードしてフォーマットすることです。
もう一つの方法は、オンラインでツールを検索または作成することですexport2csv
(githubには複数のバージョンがあります)。あなたの環境で動作するものを見つけます。通常、SQL文と出力ファイルを定義する簡単な方法があります。
データベースへのODBC接続があり(unixODBC
うまく機能)、C ++コードをコンパイルできる場合は、鉱山を試してみてくださいnisql
。https://github.com/White-Owl/nisql