sql >> データベース >  >> RDS >> Oracle

選択結果を ksh 変数に入れる

    基本的な概要として、ヒアドキュメントを使用して 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 回だけ試行するようにフラグを立てます。そうしないと、何らかの理由でログインに失敗した場合に、ヒアドキュメントの残りの部分を追加の認証情報として使用しようとし、短いスクリプトでハングアップしたように見えることがあります。




    1. 結果セットの最後の行のすべての列値の合計と行の合計(group by)を取得するSQLクエリ

    2. 画像をデータベース(mySQL)に保存する場合と保存しない場合(画像をデータベース内のアイテムにリンクする)

    3. MySQLを使用するようにDjangoを設定する

    4. SSHトンネル経由のPostgreSQL