Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


4.41.1 代入文 形式1の形式と規則

〈この項の構成〉

(1) 機能

SQL変数,又はSQLパラメタに値を代入します。

(2) 使用権限

なし。

(3) 形式 <SQL変数,又はSQLパラメタへの代入>

 SET 代入先 = 代入値
 
 代入先::={〔文ラベル.〕SQL変数名
        |〔〔認可識別子.〕ルーチン識別子.〕SQLパラメタ名
        |〔文ラベル.〕SQL変数名..属性名〔..属性名〕…
        |〔〔認可識別子.〕ルーチン識別子.〕SQLパラメタ名..属性名〔..属性名〕…}
 代入値::={値式|NULL | DEFAULT}

(4) オペランド

(a) 代入先

::={〔文ラベル.〕SQL変数名
    |〔〔認可識別子.〕ルーチン識別子.〕SQLパラメタ名
    |〔文ラベル.〕SQL変数名..属性名〔..属性名〕…
    |〔〔認可識別子.〕ルーチン識別子.〕SQLパラメタ名..属性名〔..属性名〕…}

値を代入するSQL変数,SQLパラメタ,又はSQL変数の属性名,SQLパラメタの属性名を指定します。

パブリック手続き定義,又はパブリック関数定義のSQL手続き文中で認可識別子を指定する場合は,認可識別子にPUBLICを指定してください。

(b) 代入値::={値式|NULL|DEFAULT}

代入する値を指定します。

(5) 共通規則

  1. 代入先には,SQLルーチンで指定した入出力モード(パラメタモード)がINのSQLパラメタ名を指定できません。また,関数のSQLパラメタ名も指定できません。

  2. 代入先のデータ型は,代入値のデータ型と互換性がなければなりません。

  3. 代入先と代入値のデータ型が異なる場合には型変換され,同じ場合にはそのまま代入値が代入先に代入されます。

  4. 代入値が文字データ型の場合,代入先と代入値の文字集合は同じでなければなりません。ただし,代入値が文字列定数の場合は,代入先と代入値の文字集合が異なっていても,自動的に代入先の文字集合に変換してから代入します。

  5. 代入値に指定する値式中に,副問合せは指定できません。

  6. 代入値にDEFAULTを指定した場合,代入の対象となるSQL変数の既定値を代入します。SQL変数の既定値の宣言は「複合文(複数文実行)」を参照してください。代入先にSQLパラメタを指定し,代入値にDEFAULTを指定した場合,代入先のSQLパラメタにナル値を代入します。トリガSQL文中に指定した代入文(形式1)の代入先に新旧値相関名で修飾された列名を指定し,代入値にDEFAULTを指定した場合,代入先の列の既定値を代入します。ただし,代入先の新旧値相関名で修飾された列の既定値がUSING BESを指定したCURRENT_TIMESTAMPの場合は,代入値にDEFAULTを指定できません。トリガSQL文については「CREATE TRIGGER(トリガ定義)」を参照してください。

(6) 留意事項

  1. 代入文の形式1は,SQLルーチン中にだけ指定できます。SQLルーチン以外で代入文を指定する場合は,代入文の形式2を指定してください。