17.4.4 MODIFY文
- 〈この項の構成〉
(1) 機能
レコード実現値を更新します。
(2) 形式
(a) UAPに記述するMODIFY文
MODIFY レコード名 FROM :埋込み変数
(b) DMLコマンドで記述するMODIFY文
MODIFY レコード名 SET 構成要素名=更新値〔,構成要素名=更新値〕…
(3) オペランドの説明
- ●レコード名
-
〜<識別子>((1〜30バイト))
レコード実現値を更新するレコード名を指定します。
- 注意事項
-
-
レコード名に英小文字を使用している場合は,レコード名を引用符(")で囲んでください。引用符で囲まないと,英小文字は英大文字と見なされます。
-
レコード名に空白またはハイフン(-)を使用している場合は,レコード名を引用符(")で囲んでください。
-
- ●FROM :埋込み変数
-
更新対象のレコードの更新値を指定します。
埋込み変数の宣言方法については,マニュアル「HiRDB 構造型データベース機能(UAP開発編)」の「UAPの作成」の「埋込み変数の宣言」を参照してください。
- ●SET 構成要素名=更新値〔,構成要素名=更新値〕…
-
構成要素名:〜<識別子>((1〜30バイト))
更新対象の構成要素名と更新値を指定します。
指定規則を次に示します。
-
データ種別1がUの構成要素名を指定してください。ただし,キー項目の構成要素は指定できません。
-
構成要素名は,更新する構成要素の個数分指定できます。
-
同じ構成要素名は指定できません。
-
構成要素名に英小文字を使用している場合は,構成要素名を引用符(")で囲んでください。引用符で囲まないと,英小文字は英大文字と見なされます。
-
OCCURS句を指定して生成された構成要素名を使用する場合は引用符(")で囲んでください。OCCURS句については,「11.7.1(4)(g) OCCURS」を参照してください。
-
構成要素のデータ型に対応する更新値を指定してください。更新値の指定形式については,「17.2.2 DMLのデータ型」を参照してください。
-
(4) 共通規則
-
更新対象のレコードを,次のどれかのDMLで位置づけておく必要があります。
-
FIND文(位置決め目的にFOR UPDATEを指定する)
-
FETCH文(位置決め目的にFOR UPDATEを指定する)
-
STORE文
-
-
埋込み変数で指定したレコードデータのうち,ルートレコードのデータベースキーの構成要素,および一連番号として定義した構成要素の値は変更できません。変更していても変更後のキー値に対応するレコードではなく,位置づいているレコードが更新されます。
-
埋込み変数で指定したレコードデータのうち,ルートレコードのデータベースキーの構成要素,および一連番号の構成要素に対応するデータは無視されます。
-
埋込み変数で指定したレコードデータのうち,キー項目の構成要素は更新できません。データが変更されている場合はエラーとなります。
(5) 使用例
- 例1
-
ルートレコードRECAのレコード実現値の値を更新します。
MODIFY "RECA" FROM :WRECA
- 例2
-
DMLコマンドでルートレコードRECAのレコード実現値の値を更新します。
MODIFY "RECA" SET "USERDA0"=200