UPDATE

Name

UPDATE -- はテーブルの行を更新します

Synopsis

UPDATE [ <optimizer_hint> ] <table>[@<dblink> ]
    SET <column> = { <expression> | DEFAULT } [, ...]
  [ WHERE <condition> ]
  [ RETURNING <return_expression> [, ...]
      { INTO { <record> | <variable> [, ...] }
      | BULK COLLECT INTO <collection> [, ...] } ]

Description

UPDATE は、条件を満たすすべての行の指定された列の値を変更します。変更する列のみをSET句で指定する必要があります。明示的に変更されていない列は、以前の値を保持します。

RETURNING INTO { record | variable [, ...] } 句は、SPLプログラム内でのみ指定できます。さらに、 UPDATE コマンドの結果セットは複数の行を返してはなりません。そうしないと、例外がスローされます。結果セットが空の場合、ターゲットレコードまたは変数の内容はnullに設定されます。

RETURNING BULK COLLECT INTO collection [, ...] 節は、 UPDATE コマンドがSPLプログラム内で使用される場合にのみ指定できます。 BULK COLLECT INTO 節のターゲットとして複数の「10」が指定されている場合、各「10」は単一のスカラーフィールドで構成されている必要があります。つまり、「10」はレコードであってはなりません。 UPDATE コマンドの結果セットには、0行、1行、または複数行が含まれる場合があります。結果セットの各行で評価された return_expression は、最初の要素から始まる「10」の要素になります。「10」の既存の行はすべて削除されます。結果セットが空の場合、「10」は空になります。

テーブルを更新するには、そのテーブルに対する UPDATE 特権と、 expression または condition で値が読み取られるテーブルに対する SELECT 特権が必要です。

Parameters

optimizer_hint

実行計画を選択するためのオプティマイザーへのコメントが埋め込まれたヒント。

table

更新するテーブルの名前(オプションでスキーマ修飾)。

dblink

リモートデータベースを識別するデータベースリンク名。データベースリンクの詳細については、 CREATE DATABASE LINK コマンドを参照してください。

column

テーブル内の列の名前。

expression

列に割り当てる式。式では、この列とテーブル内の他の列の古い値を使用できます。

DEFAULT

列をデフォルト値に設定します(特定のデフォルト式が割り当てられていない場合、nullになります)。

condition

タイプ BOOLEAN の値を返す式。この式がtrueを返す行のみが更新されます。

return_expression

テーブルの1つ以上の列を含む可能性のある式。テーブルの列名が return_expression に指定されている場合、 return_expression の評価時に列に代入される値は次のように決定されます。

return_expression で指定された列に UPDATE コマンドで値が割り当てられている場合、割り当てられた値は return_expression の評価に使用されます。

return_expression で指定された列に UPDATE コマンドで値が割り当てられていない場合、影響を受ける行の列の現在の値が return_expression の評価に使用されます。

record

評価された return_expression が割り当てられるフィールドを持つレコード。最初の return_expression は record の最初のフィールドに割り当てられ、2番目の return_expression は record の2番目のフィールドに割り当てられます。 record のフィールドの数は式の数と正確に一致する必要がありますフィールドは、割り当てられた式と型互換性がなければなりません。

variable

評価された return_expression が割り当てられる変数。複数の return_expression と variable が指定されている場合、最初の return_expression が最初の variable に割り当てられ、2番目の return_expression が2番目の variable に割り当てられます。 INTO キーワードは RETURNING キーワードに続く式の数と正確に一致する必要があり、変数は割り当てられた式と型互換性がなければなりません。

collection

評価された return_expression から要素が作成されるコレクション。単一フィールドのコレクションまたはレコードタイプのコレクションである単一コレクション、または複数のコレクションがあり、各コレクションが単一フィールドで構成されている必要があります。戻り式の数は数が一致し、指定されたすべてのコレクション内のフィールドの数を並べる必要があります。対応する各 return_expression および collection フィールドは、タイプ互換である必要があります。

Examples

dept テーブルの部門 20 の場所を AUSTIN に変更します。

UPDATE dept SET loc = 'AUSTIN' WHERE deptno = 20;

emp テーブルに job = SALESMAN があるすべての従業員について、 10% で給与を更新し、 500 で手数料を増やします。

UPDATE emp SET sal = sal * 1.1, comm = comm + 500 WHERE job = 'SALESMAN';