可以查看任何一本有关ibm db2的文章或e书,我们都可以发现,ccsid=65535不代表某个国家的双字节字符集。在ccsid对照国家表中,根本找不到ccsid=65535。但是,在400下,ccsid=65535就有它的特殊含义,当需要显示、转换,或程序处理遇到双字节字符集代码时,ccsid=65535就体现它的含义了,即发生上述情况,系统会自动寻找下一级的ccsid代码,再进行处理。
如windows终端显示400下pf内容时,如果400系统设置ccsid=65535,这时就要查看这个pf的ccsid是否与windows下的这个odbc对这个pf的ccsid是否一致。只有一致才能正常显示(还有其它特例,稍后再说)。如果这是把qsysval设成ccsid=中文的ccsid,对这个单独的显示,没有问题,可以正常显示。但是,因为400下,不一定所有的pf的ccsid都是一致的,这样就会造成其它pf的显示错误,和运行错误。
windows下对应400的odbc设置中的ccsid与400下要查看的pf的ccsid一致就可以了。如果一致还会出现乱码,就是windows下的ca版本与400支持的ca版本不一致。这时,最好降低windows下的ca版本。
所以,对qsysval的ccsid=65535值,不要轻易改动。
对数据而言,ccsid的层次,从高到低,qsysval、pf、field;
对多语言环境。搞明白ccsid层次关系,就可以轻易设置了。
另外,还有个job的ccsid层次关系。我整理后,再补充。
阅读(2463) | 评论(0) | 转发(0) |