Hitachi

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


1.13.1 位置付け子(locator)の概要と規則

〈この項の構成〉

(1) 概要

位置付け子はサーバ上にある特定のデータ値を識別する4バイトの値を持つデータです。位置付け子を用いることで,クライアント上にデータの実体を保持しないで,そのデータを扱うSQLの処理ができます。

(2) 規則

  1. 位置付け子の種類を次の表に示します。

    表1‒37 位置付け子の種類

    種類

    内容

    BLOB位置付け子

    サーバ上のBLOB型データ値を識別する値を持つ

    BINARY位置付け子

    サーバ上のBINARY型データ値を識別する値を持つ

  2. 位置付け子の指定方法と指定できる箇所を次の表に示します。

    表1‒38 位置付け子の指定方法と指定できる箇所

    種類

    指定方法

    指定できる箇所

    BLOB位置付け子

    埋込み変数

    BLOB型の埋込み変数が指定できる箇所

    BINARY位置付け子

    埋込み変数

    BINARY型の埋込み変数が指定できる箇所

    ただし,割り当てられたサーバ上のデータのデータ型が,最大長が32,001バイト以上のBINARY型である位置付け子の埋込み変数の場合は,最大長が32,001バイト以上のBINARY型の埋込み変数を指定できる箇所だけとなります。

  3. サーバ上のデータ値を割り当てられていない位置付け子は無効です。

  4. 位置付け子を次に示す箇所に指定することで,データ値が割り当てられ,その位置付け子は有効となります。有効な位置付け子は同じトランザクション中で,対応するデータ型のデータと同様にSQL文中に指定できます。

    • 1行SELECT文のINTO句

    • FETCH文のINTO句

    • 代入文の代入先

    • 手続きのOUTパラメタ及びINOUTパラメタに対するCALL文の引数

    • EXECUTE文のINTO句

  5. 位置付け子は次の場合に無効となります。

    • FREE LOCATOR文に指定

    • COMMIT文の実行

    • ROLLBACK文の実行

    • DISCONNECT文の実行

    • PURGE TABLE文の実行時の自動的なCOMMIT

    • クライアント環境変数のPDCMMTBFDDLにYESを設定している場合の定義系SQL実行時の自動的なCOMMIT

    • 暗黙的ロールバックによるトランザクションの終了

  6. 無効な位置付け子を,割り当てられたデータを扱うSQL文中,又はFREE LOCATOR文に指定した場合はエラーとなります。

  7. 代入文形式2の代入先,及び代入値に位置付け子の埋込み変数を指定することで,サーバ上の同じデータを識別する位置付け子を複数作成した場合は,どれかを無効にしても,ほかの位置付け子は有効のままとなります。

  8. 既にデータを割り当てられている有効な位置付け子に対して,再びほかのデータを割り当てた場合でも,元の位置付け子の値は有効のままとなります。

  9. 位置付け子の値をUAPの記述言語によって書き換えた場合は,位置付け子が無効となります。又は書き換える前のデータと異なるデータを識別する場合があります。

  10. 無効な位置付け子に対して,UAPの記述言語によって有効な位置付け子の値を代入した場合,その位置付け子は有効となり,代入元の位置付け子と同じデータを識別します。また,この場合にどれかを無効にすると,どちらの位置付け子も無効となります。