Hitachi

ノンストップデータベース HiRDB Version 9 システム定義(Windows(R)用)


9.2.52 文字コードに関するオペランド

◆ pd_substr_length = 3|4|5|6|7|8|9|10

1文字を表現する最大バイト数を指定します。

セットアップした文字コード種別によって,推奨値と指定できる値の範囲が異なります。セットアップした文字コード種別と,対応する推奨値,指定できる値を次に示します。

セットアップした文字コード種別

推奨値

指定できる値

utf-8

4

3〜6

utf-8_ivs

8

3〜10

上記以外(このオペランドは無効)

(凡例)

−:このオペランドは無効となるため値はありません。

このオペランドは,文字コード種別をutf-8,又はutf-8_ivsでセットアップした場合に有効で,スカラ関数SUBSTRの結果の長さに影響します。

スカラ関数SUBSTRについては,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。

《指定値の目安》

UCS-2の範囲の文字(1〜3バイト)だけを使用する場合は,このオペランドを省略できます。

UCS-4の範囲の文字を使用する場合は,1文字を表現する最大バイト数を指定します。ISO/IEC 10646の規格では文字が割り当てられているのは,UTF-8の場合1文字1〜4バイト,IVS対応UTF-8の場合1文字1〜4,7,又は8バイトです。指定値はそれぞれの最大バイト数を推奨します。

ただし,実際に使用している1文字を表現するバイト数以上の値を指定すると,スカラ関数SUBSTRの結果が長くなることがあるため,使用している文字コードに基づいて指定値を検討してください。

《注意事項》
  • ISO/IEC 10646の規格は,1文字当たり1〜4バイト(IVS対応UTF-8では1〜4,7,又は8バイト)の範囲に文字が割り当てられ,5,6バイト(IVS対応UTF-8では5,6,9,又は10バイト)の範囲は将来の規格のために予約されています。HiRDBでは1文字当たり1〜6バイト(IVS対応UTF-8では1〜10バイト)の範囲まで使用できますが,文字が割り当てられていない5,6バイト(IVS対応UTF-8では5,6,9,又は10バイト)の範囲を使用する場合,将来発生するおそれのある問題については保証できません。

  • バージョン06-02でサポートしたUnicode(UTF-8)は,1文字を表現する最大バイト数は3バイトの範囲まで使用できます。バージョン08-00からは,最大6バイトの範囲まで使用できます。バージョン09-50でサポートした文字コード種別utf-8_ivsは,1文字を表現する最大バイト数が10バイトの範囲まで使用できます。そのため,データによっては1文字を表現するバイト数が大きくなることがあります。

  • 次の条件をすべて満たしている場合は,ルーチンのSQLオブジェクトの再作成やビュー表の再定義をする必要があります。

    ・文字コード種別をutf-8,又はutf-8_ivsでセットアップしている

    ・新規でpd_substr_lengthオペランドの指定値に3以外を指定する,又は既にpd_substr_lengthオペランドを指定している環境で,ルーチンやビュー表を定義し,かつpd_substr_lengthオペランドの指定値を変更する

    ・混在文字列型(MCHAR,MVARCHAR)を引数に指定したスカラ関数SUBSTRをルーチンやビュー定義に指定する

    ただし,クライアント環境定義のPDSUBSTRLENオペランドを指定してコネクション単位に制御したり,SQLコンパイルオプションのSUBSTR LENGTHの指定によってルーチン単位で制御したりもできます。

  • 文字コード種別をutf-8,又はutf-8_ivsでセットアップしている場合のpd_substr_lengthオペランドと,そのほかのオペランドの指定値との優先順位を次に示します。

    ルーチン単位で制御する場合

    制御のタイミング

    pd_substr_lengthオペランド

    クライアント環境定義

    PDSUBSTRLEN

    SQLコンパイルオプション

    SUBSTR LENGTH

    備考

    定義時

    有効(2)

    無効

    有効(1)

    省略値

    pd_substr_length

    コール時又は関数呼出し時

    無効

    (定義時の指定に従う)

    無効

    (定義時の指定に従う)

    特になし

    (凡例)

      ( ):優先順位

      −:指定できません。

    ビュー表単位で制御する場合

    制御のタイミング

    pd_substr_lengthオペランド

    クライアント環境定義

    PDSUBSTRLEN

    SQLコンパイルオプション

    SUBSTR LENGTH

    備考

    定義時

    有効(2)

    有効(1)

    省略値

    pd_substr_length

    操作時

    無効

    (定義時の指定に従う)

    無効

    (定義時の指定に従う)

    特になし

    (凡例)

      ( ):優先順位

      −:指定できません。