2009年07月27日
SQL_LOGICAL_CHAR
先週末にeGAになったばかりのIDS 11.50.xC5で使用可能になった、新しい ONCONFIGパラメーターです。
このパラメータを次のように設定すると、データベースサーバーは文字列系データ型のサイズ指定を、「現在使用中のDB_LOCALEでの1文字あたりのバイト数の最大値」で掛け算して扱います。
SQL_LOGICAL_CHAR ON
事実上、データ型のサイズ指定がバイト単位から、文字数単位になったようなものです。
CREATE DATABASE xc5testsjis1;
CREATE TABLE t1 ( c1 CHAR(5) );
INSERT INTO t1 VALUES ( '12345' ); -- 5 logical chars
INSERT INTO t1 VALUES ( '一二三四五' ); -- 5 logical chars
INSERT INTO t1 VALUES ( '一22三四五' ); -- 6 logical chars
SELECT * FROM t1;
ONCONFIGパラメーター 'SQL_LOGICAL_CHAR ON'を設定した状態で作成した表には、上記のINSERT文で挿入されたデータはすべて、切り捨てられずに格納されます。1文字あたりのバイト数の最大値を基準にデータ長を計算しているため、上記の3番目のケースでは、論理文字数が6の文字列でも格納されています。
詳しくは、IDS 11.50 Information Center をどうぞ。例によって、ブラウザーの言語設定を「英語優先」に切り替えてからご覧ください。それにしても、早く日本語翻訳版を参照できるようになると良いですね。
このパラメータを次のように設定すると、データベースサーバーは文字列系データ型のサイズ指定を、「現在使用中のDB_LOCALEでの1文字あたりのバイト数の最大値」で掛け算して扱います。
SQL_LOGICAL_CHAR ON
事実上、データ型のサイズ指定がバイト単位から、文字数単位になったようなものです。
CREATE DATABASE xc5testsjis1;
CREATE TABLE t1 ( c1 CHAR(5) );
INSERT INTO t1 VALUES ( '12345' ); -- 5 logical chars
INSERT INTO t1 VALUES ( '一二三四五' ); -- 5 logical chars
INSERT INTO t1 VALUES ( '一22三四五' ); -- 6 logical chars
SELECT * FROM t1;
ONCONFIGパラメーター 'SQL_LOGICAL_CHAR ON'を設定した状態で作成した表には、上記のINSERT文で挿入されたデータはすべて、切り捨てられずに格納されます。1文字あたりのバイト数の最大値を基準にデータ長を計算しているため、上記の3番目のケースでは、論理文字数が6の文字列でも格納されています。
詳しくは、IDS 11.50 Information Center をどうぞ。例によって、ブラウザーの言語設定を「英語優先」に切り替えてからご覧ください。それにしても、早く日本語翻訳版を参照できるようになると良いですね。
Posted by oninit at 22:52│Comments(0)
│IBM Webサイトにある情報
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。