UPDATE文

UPDATE文は、表またはビューの1つ以上の行の指定された列の値を変更します。 UPDATE SQLステートメントの詳細については、 『Oracle Database SQLリファレンス』を参照してください。

構文

更新ステートメント:: =

図の説明update_statement.gif

キーワードとパラメーターの説明

エイリアス

参照されるテーブルまたはビューの別の(通常は短い)名前。通常はWHERE句で使用されます。

column_name

更新する列(または列の1つ)。参照されるテーブルまたはビューの列の名前である必要があります。 column_nameリストで列名を繰り返すことはできません。列名は、テーブルまたはビューに表示されるのと同じ順序でUPDATEステートメントに表示される必要はありません。

returning_clause

値を返します更新された行から、後で行をSELECTする必要がなくなります。列の値は、変数またはホスト変数、あるいはコレクションまたはホスト配列に取得できます。 RETURNING句をリモートまたは並列更新に使用することはできません。ステートメントがどの行にも影響を与えない場合、RETURNING句で指定された変数の値は未定義です。 returning_clauseの構文については、「RETURNINGINTO句」を参照してください。

SET column_name = sql_expression

この句は、

column_nameで識別される列に移動します。 sql_expressionに更新中のテーブルの列への参照が含まれている場合、参照は現在の行のコンテキストで解決されます。古い列の値は等号の右側で使用されます。

SET column_name =(subquery3)

データベースから取得した値ををcolumn_nameで識別される列に移動します。サブクエリは、正確に1つの行と1つの列を返す必要があります。

SET(column_name、column_name、…)=(subquery4)

データベースから取得した値を

column_nameリストの列に追加します。サブクエリは、リストされているすべての列を含む正確に1つの行を返す必要があります。サブクエリによって返される列の値は、列リストの列に順番に割り当てられます。最初の値はリストの最初の列に割り当てられ、2番目の値はリストの2番目の列に割り当てられます。

sql_expression

任意の有効なSQL式。詳細は、 『Oracle Database SQLリファレンス』を参照してください。

subquery

SELECTステートメント。処理する行のセットを提供します。その構文は、INTO句のないselect_into_statementの構文に似ています。 「SELECTINTOステートメント」を参照してください。

table_reference

UPDATEステートメントを実行するときにアクセスできる必要があるテーブルまたはビュー。 UPDATE権限が必要です。 table_referenceの構文については、「DELETEステートメント」を参照してください。

TABLE(subquery2)

SELECTステートメントであり、単一の列値を返します。これはネストされたテーブルまたはVARRAYである必要があります。演算子TABLEは、値がスカラー値ではなくコレクションであることをOracleに通知します。

cursor_nameの現在の場所

最新の行を参照します指定されたカーソルに関連付けられたFETCHステートメントによって処理されます。カーソルはFOR UPDATEである必要があり、開いて行に配置されている必要があります。カーソルが開いていない場合、CURRENT OF句によってエラーが発生します。カーソルが開いているが、行がフェッチされていないか、最後のフェッチで行が返されない場合、PL / SQLは事前定義された例外NO_DATA_FOUNDを発生させます。

WHERE search_condition

データベース表で更新する行を選択します。検索条件を満たす行のみが更新されます。この句を省略すると、テーブル内のすべての行が更新されます。

使用上の注意

UPDATE WHERE CURRENT OFステートメント(カーソル

ループ)、関連付けられたクエリがFOR UPDATEの場合。このステートメントは、フェッチされたばかりの行を更新します。

暗黙カーソルSQLとカーソル属性%NOTFOUND%FOUND%ROWCOUNT、および%ISOPENを使用すると、UPDATEの実行に関する有用な情報にアクセスできます。ステートメント。

例13-7は、正しい従業員IDと文字化けした名前のテーブルを作成します。次に、相関クエリを使用してUPDATEステートメントを実行し、EMPLOYEESテーブルから正しい名前を取得して、新しいテーブルの名前を修正します。 。

例については、以下を参照してください。

例1-12「格納されたサブプログラムの作成」
例4-1「単純なIF-THENステートメントの使用」
例5-51「レコードを使用した行の更新」
例5-52「レコードでのRETURNING句の使用」
例6-1「PL / SQLを使用したデータ操作」
例6-5「CURRVALとNEXTVALの使用」
例6-6「ROWNUMの使用」
例6-38「SAVEPOINTとROLLBACKの使用」
例6-41「CURRENTの使用」 OFを使用して、カーソルからフェッチされた最新の行を更新します」
例7-1、「動的SQLの例」
例7-5「RETURNINGBULK COLLECTINTO句を使用した動的SQL」
例7-6 、「FORALLステートメント内の動的SQL」
例11-6、「FORALLでのロールバックの使用」
例11-9、「例外にもかかわらず継続する一括操作」

関連トピック

“データ操作”
“DELETEステートメント”
“FETCHステートメント”
“INSERTステートメント”

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です