我在char(1)字段中插入特殊字符(áéíú或ñ)时遇到问题。
CREATE TABLE sgc2."tabtest2"(field1 CHAR(1), field2 VARCHAR(1));
INSERT INTO sgc2."tabtest2" values('á', 'á');
ERROR:
Value "á" is too long.. SQLCODE=-433, SQLSTATE=22001, DRIVER=4.13.111
显然要插入这些字符需要两个字节,并且由于字段只接受一个不能以插入结束。 有没有办法配置数据库,支持这些只占用1个字节的特殊字符?
答案 0 :(得分:1)
显然,您的数据库是使用Unicode代码集创建的,其中特殊字符由多个字节表示。如果您只需要表示有限范围的重音字符,您可以选择ISO-8859指定的受支持的代码集之一,用于相应的语言 - 详细信息in the manual。您必须使用适当的CODESET
选项重新创建数据库,因为您无法更改现有数据库的代码集。
但是,您应该考虑更改表,因为Unicode为您提供了更大的灵活性。 Unicode数据库也可能是某些DB2功能的要求,例如BLU Acceleration。