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

Oracle SQL:フィールドを読み取ってインクリメントする方法

    この特定のケースでは、前述のようにシーケンスが正しい解決策です。ただし、将来、何かを更新して同じステートメントで値を返す必要がある場合は、RETURNINGを使用できます。 条項:

    UPDATE atable SET foo = do_something_with(foo) RETURNING foo INTO ?
    

    呼び出し元のコードがPL/SQLの場合は、?を置き換えます。ローカルのPL/SQL変数を使用します。それ以外の場合は、プログラムの出力パラメーターとしてバインドできます。

    編集:Perlについて言及したので、このようなものは機能するはずです(テストされていません):

    my $sth = $dbh->prepare('UPDATE mytable SET idnext = idnext + 1 returning idnext into ?');
    my $idnext;
    $sth->bind_param_inout(1, \$idnext, 8);
    $sth->execute; # now $idnext should contain the value
    

    DBI を参照してください 。



    1. クラウド内のMySQL-AmazonRDSの長所と短所

    2. pg_hba.confエラーを報告するPsycopg2

    3. 私のサイトでグローバル検索を作成する方法

    4. MySQLクエリでタイムスタンプを日付に変換する