
次のような複数のSQL文を含むシェルスクリプトがあります。
select Count(*) from Emp where date= current_date-1;
シェルスクリプトを実行したら、次のように列名を含むMS Excelファイルを作成し、ローカルシステムで結果を生成し、それをマイメールIDでメールに送信する必要があります。
MS Excelファイル:
X(Table name) - Eg: Emp
Result set 120
答え1
この例を試してください。
awk 'BEGIN{ OFS="|"; print "Column1|Column2|Column3|Column4|Column5|Column6"};
NR > 1{print "IND", "INR", $6, $7, $8, $9;}' Inputdata.txt > Output.xls
答え2
テーブル名を含むようにSQL文を変更します。
sqlplus <USER_NAME>/<PASSWORD>@<DB_NAME> <<! > output.dat
SET PAGES 0
select 'Emp,' || Count(*) from Emp where date= current_date-1;
EXIT;
!
awk -F "," '{ a[++n] = $1; b[n] = $2; next }
END { printf "Table Name"; for(i=1; i<=n; i++) printf ",%s", a[i]; print"";
printf "Result Set"; for(i=1; i<=n; i++) printf ",%s", b[i]; print ""
}' output.dat > output.csv
uuencode output.csv output.csv | mail -s "Query result" "[email protected]"