问题描述:
每个汉字在DB2数据库中占多少个字节?
问题解决:
与DB2的code page有关系,如果是GBK, 每个汉字占2个字节。如果是UTF,则占用3个字节。
测试:
$ db2 "create db test1 USING CODESET GBK TERRITORY ZH_CN"
$ db2 "connect to test1"
$ db2 "create table t1(name varchar(6))"
DB20000I The SQL command completed successfully.
$ db2 "insert into t1 values('黑龙江')"
DB20000I The SQL command completed successfully.
$ db2 "insert into t1 values('黑龙江省')"
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0433N Value "黑龙江省" is too long. SQLSTATE=22001
$ db2 terminate
$ db2 "create db test2"
$ db2 "connect to test2"
$ db2 "create table t2(name varchar(6))"
DB20000I The SQL command completed successfully.
$ db2 "insert into t2 values('大庆')"
DB20000I The SQL command completed successfully.
$ db2 "insert into t2 values('大庆市')"
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0433N Value "大庆市" is too long. SQLSTATE=22001