スケーラブルデータベースサーバ HiRDB Version 8 システム定義(UNIX(R)用)
- 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 |
操作時 |
無効
(定義時の指定に従う) |
無効
(定義時の指定に従う) |
− |
特になし |
(凡例)
( ):優先順位
−:指定できません。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.