スケーラブルデータベースサーバ HiRDB Version 8 システム定義(UNIX(R)用)

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

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

230) pd_substr_length = 3 | 4 | 5 | 6
1文字を表現する最大バイト数を指定します。このオペランドは,文字コードにUnicode(UTF-8)を指定している場合に有効で,スカラ関数SUBSTRの結果の長さに影響します。
スカラ関数SUBSTRについては,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。
《指定値の目安》
UCS-2の範囲の文字(1〜3バイト)だけを使用する場合は,このオペランドを省略できます。UCS-4の範囲の文字(1〜6バイト)を使用する場合は,1文字を表現する最大バイト数を指定します。
ただし,実際に使用している1文字を表現するバイト数以上の値を指定すると,スカラ関数SUBSTRの結果が長くなることがあるため,使用している文字コードに基づいて指定値を検討してください。
《注意事項》
  • ISO/IEC 10646の規格では,1文字当たり1〜4バイトの範囲に文字が割り当てられ,5,6バイトの範囲は将来の規格のために予約されています。HiRDBでは1文字当たり1〜6バイトの範囲まで使用できますが,文字が割り当てられていない5,6バイトの範囲を使用する場合,将来発生するおそれのある問題については保証できません。
  • バージョン06-02でサポートしたUnicode(UTF-8)は,1文字を表現する最大バイト数は3バイトの範囲まで使用できます。バージョン08-00からは,最大6バイトの範囲まで使用できます。そのため,データによっては1文字を表現するバイト数が大きくなることがあります。
  • 次の条件をすべて満たしている場合は,ルーチンのSQLオブジェクトの再作成やビュー表の再定義をする必要があります。
    ・文字コードにUnicode(UTF-8)を指定している
    ・新規でpd_substr_lengthオペランドの指定値に3以外を指定する,又は既にpd_substr_lengthオペランドを指定している環境で,ルーチンやビュー表を定義し,かつpd_substr_lengthオペランドの指定値を変更する
    ・混在文字列型(MCHAR,MVARCHAR)を引数に指定したスカラ関数SUBSTRをルーチンやビュー定義に指定する
    ただし,クライアント環境定義のPDSUBSTRLENオペランドを指定してコネクション単位に制御したり,SQLコンパイルオプションのSUBSTR LENGTHの指定によってルーチン単位で制御したりもできます。
  • 文字コードにUnicode(UTF-8)を指定している場合の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
    操作時 無効
    (定義時の指定に従う)
    無効
    (定義時の指定に従う)
    特になし
    (凡例)
      ( ):優先順位
      −:指定できません。