Hitachi

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


4.42.1 代入文 形式2の形式と規則

〈この項の構成〉

(1) 機能

埋込み変数,又は?パラメタに値を代入します。

(2) 使用権限

なし。

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

 SET  代入先 = 代入値
 代入先::={:埋込み変数〔:標識変数〕| ?パラメタ}
 代入値::={:埋込み変数〔:標識変数〕ASデータ型 
        |?パラメタASデータ型 
        |LENGTH(値式)
        |SUBSTR(値式1,値式2 〔,値式3〕)
        |POSITION(値式1 IN値式2 〔FROM値式3〕)}

(4) オペランド

(a) 代入先::={:埋込み変数〔:標識変数〕|?パラメタ}

値を代入する埋込み変数,又は?パラメタを指定します。

(b) 代入値

::={:埋込み変数〔:標識変数〕 ASデータ型
    |?パラメタASデータ型
    |LENGTH(値式)
    |SUBSTR(値式1,値式2 〔,値式3〕)
    |POSITION(値式1 IN値式2 〔FROM値式3〕)}

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

:埋込み変数〔:標識変数〕 ASデータ型

指定できるデータ型はBLOB型,又はBINARY型だけです。AS句で埋込み変数のデータ型を指定してください。このとき,埋込み変数で与えるデータの実長(位置付け子の場合は位置付け子に割り当てられたデータの実長)がAS句で指定したデータ型の最大長より大きい場合はエラーとなります。

?パラメタASデータ型

指定できるデータ型はBLOB型,又はBINARY型だけです。AS句で?パラメタのデータ型を指定してください。このとき,?パラメタに与えるデータの実長(位置付け子の場合は位置付け子に割り当てられたデータの実長)がAS句で指定したデータ型の最大長より大きい場合はエラーとなります。

LENGTH(値式)

SUBSTR(値式1,値式2,〔値式3〕)

POSITION(値式1 IN値式2 〔FROM値式3〕)

スカラ関数LENGTHの値式,スカラ関数SUBSTRの値式1,及びスカラ関数POSITIONの値式2に指定できるデータ型はBLOB型,又はBINARY型だけです。指定できるものは埋込み変数,?パラメタだけです。そのほかの指定方法は各スカラ関数の規則に従ってください。

(5) 共通規則

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

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

  3. 代入値に指定する値式中に,以下のものは指定できません。

    • 列指定

    • コンポネント指定

    • スカラ副問合せ

(6) 留意事項

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

(7) 使用例

BLOB位置付け子の埋込み変数(XLOC)に割り当てられたBLOBデータの一部をBLOB型の埋込み変数(XDATA)に代入します。

SET :XDATA = SUBSTR(:XLOC AS BLOB(1M), 100, 1024)