基本的な概要として、ヒアドキュメントを使用して SQL*Plus を実行してクエリを実行し、出力を変数に割り当てることができます。
P_NUMBER=`sqlplus -s /nolog <<!EOF connect username/password whenever sqlerror exit failure set pagesize 0 set feedback off select your_value from your_table where your_key = 'something'; exit 0 !EOF`
プレ>バッククォートで囲むと、結果が変数に割り当てられます。 $P_NUMBER は、クエリが取得した値を保持します (資格情報が間違っている場合はエラー メッセージが表示されます)。クエリが正確に 1 つの結果を返すことが確実である場合に役立ちます。
$?
を使用してリターン コードをテストすることもできます。 変数を使用する前に、エラーを探します。
-s
を含む フラグを設定し、フィードバックをオフにし、ページサイズをゼロに設定すると、すべてのノイズがまとめて抑制されるため、結果のみが得られ、バナーや見出しなどを削除する必要はありません.そして最後に
/nolog
を使用しましたconnect
を入れます これは、見落とされがちなセキュリティ上の問題であるプロセス リストに資格情報が表示されないようにするためです。それをしたくない場合は、資格情報をsqlplus username/passwd
として入力します 、-l
を追加できます ログインを 1 回だけ試行するようにフラグを立てます。そうしないと、何らかの理由でログインに失敗した場合に、ヒアドキュメントの残りの部分を追加の認証情報として使用しようとし、短いスクリプトでハングアップしたように見えることがあります。