当前位置:首页 > 开发 > 数据库 > 正文

AIX下db2 connnect时报的编码问题解决

发表于: 2014-09-21   作者:cloudstars   来源:转载   浏览:
db2
摘要: 问题描述: =>create dababase test using codeset GBK territory CN =>connect to test=>SQL0332N  Character conversion from the source code page "1386" to the target code page "8

问题描述:

=>create dababase test using codeset GBK territory CN

=>connect to test
=>SQL0332N  Character conversion from the source code page "1386" to the target code page "819" is not supported. SQLSTATE=57017

 

问题原因:

      上边的错误则说明server端的字符集是1386的,而客户端的字符集是819(is08859-1)的,db2不能server端1386的字符集转化为client端819的字符集。

 

解决方法:

       解决这个问题的思想是将client端的字符集改为与server端兼容的:

=>db2set db2codepage=819
=>db2 terminate
=>db2stop force
=>db2start

 

相关知识:

三个层次的字符集:在DB2数据库中,与字符集相关的问题主要有三个层次的字符集的设置,其中系统级别和实例级别的字符集可以根据需求进行修改,而数据库级别的数据集则必须在建库时确定。
  (1)操作系统 Locale:系统级别的代码页设置,决定应用程序的默认代码页;
  假如大家希望将 OS Locale 设置为中文,可以考虑下面的方法:
  UNIX:大家可以通过 export LANG=”zh_CN” 命令修改当前的 Locale 到中文;
  Windows:在“开始->设置->控制面板->区域选项”中进行对系统的语言设置进行选择;
  (2)DB2CODEPAGE:DB2 实例级别的代码页设置,它会影响DB2相关应用程序对代码页转换时做出代码页判定。
  大家可以通过 db2set DB2CODEPAEG= 命令将 DB2CODEPAGE 设置为你需要的字符集。
  (3)DATABASE CODEPAGE:DB2 数据库级别的代码页设置;必须在建库时进行设置。
  大家在创建数据库时必须指定需要的代码页:
  db2 "CREATE DATABASE dbname USING CODESET UTF-8 TERRITORY CN"
  注释:这条语句可用于创建指定区域为中国(CN)的 Unicode 数据库。

 

当客户端连接到数据库的时候,他们的字符集要相互兼容,否则就会报下边类似的错误:

=> db2 connect to test
       => SQL0332N  Character conversion from the source code page "1386" to the target
code page "819" is not supported.  SQLSTATE=57017

AIX下db2 connnect时报的编码问题解决

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号