レコードを使用した行の更新
SQLのUPDATE
文に対するPL/SQLの拡張機能によって、レコードを使用して1つ以上の表の行を更新できます。
レコードは、表の行を表している必要があります。詳細は、「UPDATE文の拡張機能」を参照してください。
レコードを使用した表の行の更新に関する制限については、「レコードの挿入/更新に関する制限」を参照してください。
レコードのコレクションを使用して行セットを更新するには、UPDATE
文をFORALL
文内に置きます。FORALL
文の詳細は、「FORALL文」を参照してください。
例6-61 レコードを使用した行の更新
この例では、新しい値をレコードに入力し、そのレコードを使用して表の最初の3つの行を更新することによって、(例6-60で定義した)表schedule
の最初の3週間のデータを更新しています。
DECLARE default_week schedule%ROWTYPE; BEGIN default_week.Mon := 'Day Off'; default_week.Tue := '0900-1800'; default_week.Wed := '0900-1800'; default_week.Thu := '0900-1800'; default_week.Fri := '0900-1800'; default_week.Sat := '0900-1800'; default_week.Sun := 'Day Off'; FOR i IN 1..3 LOOP default_week.week := i; UPDATE schedule SET ROW = default_week WHERE week = i; END LOOP; END; / SELECT * FROM schedule;
結果:
WEEK MON TUE WED THU FRI SAT SUN ---- --------- --------- --------- --------- --------- --------- --------- 1 Day Off 0900-1800 0900-1800 0900-1800 0900-1800 0900-1800 Day Off 2 Day Off 0900-1800 0900-1800 0900-1800 0900-1800 0900-1800 Day Off 3 Day Off 0900-1800 0900-1800 0900-1800 0900-1800 0900-1800 Day Off 4 0800-1700 0800-1700 0800-1700 0800-1700 0800-1700 Day Off Day Off 5 0800-1700 0800-1700 0800-1700 0800-1700 0800-1700 Day Off Day Off 6 0800-1700 0800-1700 0800-1700 0800-1700 0800-1700 Day Off Day Off