当将数据存储在具有二进制数据类型(例如 BLOB、FOR BIT DATA 或 datalink 值)的列中时,DB2 不会转换数据。这意味着文档将保留它们的原始代码页(CCSID),这在创建文本索引时将导致问题,这是因为您可能具有两个不同的代码页。因此,需要确定您是正在使用数据库的代码页,还是正在使用在 CREATE INDEX 命令中指定的代码页。
为了避免产生此问题,应在创建文本索引时指定代码页:
db2text CREATE INDEX db2ext.comment FOR TEXT ON db2ext.texttab (comment) CCSID 1252
如果没有指定代码页,则通过调用以下命令来检查已经使用了哪个 CCSID 来创建索引:
db2 SELECT ccsid FROM db2ext.textindexes WHERE INDSCHEMA = 'COMMENT' and INDNAME = 'DB2EXT'
注意,不支持将具有不同代码页的文档放在一个文本索引中。有关 DB2 如何转换文档代码页设置的信息,请参阅《DB2 通用数据库管理指南》。请参阅相关信息。
注意,对字符数据类型创建索引时不存在这种问题。