0

1 つのスクリプトにまとめたい .body、.script、および .sql がありますが、その方法がわかりません。

.body には電子メール メッセージが含まれます。

.sql はデータを .csv にスプールします。

.script は .sql を実行し、添付の電子メールを送信しますReport.zip

sqlplus $user/$pass@$db @script.sql

(cat script.body; uuencode Report.zip Report.zip) | mail -s "Report" user@domain.com -- -f no-reply@domain.com

これ (SQL を含む) をすべて単一の BASH スクリプトで実行できる可能性はありますか?

4

1 に答える 1

1

スクリプトを sqlplus の標準入力に渡すことができる場合は、次のことができます。

sqlplus $user/$pass@$db << END
<contents of sql script here>
END

(cat script.body; uuencode Report.zip Report.zip) | mail -s "Report" user@domain.com -- -f no-reply@domain.com

それでもstdinが必要な場合(パスワードなどを要求する場合に役立ちます)、sqlplusがスクリプトファイルで何も試行しないと仮定すると、次のことができます:

sqlplus $user/$pass@$db START <(cat << END
<contents of sql script here>
END)

(cat script.body; uuencode Report.zip Report.zip) | mail -s "Report" user@domain.com -- -f no-reply@domain.com
于 2013-09-10T08:49:38.147 に答える