スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

[目次][索引][前へ][次へ]

1.14 位置付け子(locator)

<この節の構成>
(1) 概要
(2) 規則

(1) 概要

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

(2) 規則

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

    表1-39 位置付け子の種類

    種類 内容
    BLOB位置付け子 サーバ上のBLOB型データ値を識別する値を持つ
    BINARY位置付け子 サーバ上のBINARY型データ値を識別する値を持つ
  2. 位置付け子の指定方法と指定できる箇所を次の表に示します。

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

    種類 指定方法 指定できる箇所
    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の記述言語によって有効な位置付け子の値を代入した場合,その位置付け子は有効となり,代入元の位置付け子と同じデータを識別します。また,この場合にどれかを無効にすると,どちらの位置付け子も無効となります。