Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

情景:(db2数据库)

在连接数据sample的时候提示:SQL0332N 没有从源代码页 "1114" 至目标代码页 "UNKNOWN" 的转换。原因代码是 "1"。 SQLSTATE=57017

这种错误我遇见过几次.第一次由于没有时间找答案,将系统重新安装了一遍,很傻了.

今天又遇见了这个问题.出现这个问题的原因真的很多.因为以前用过这个sample ,而且对数据库的一些内容并没有主动去修改过.今天突然在使用数据库的时候,一个程序提示了这样的错误.:

[IBM][CLI Driver][DB2/NT] SQL0332N    没有从源代码页 "1386" 至目标代码页 "950" 的转换。原因码为 "3"。    SQLSTATE=57017

于是想从客户端来看看这个数据库的内容,在使用一些连接数据库的工具连接的时候就出现了标题中的错误.

看到了很多关于这个问题的解决方法,如:

db2set db2codepage=1114
db2stop force
db2start

不过这里是有问题的,IBM提供的一个相关问题的解决方法是这样的:

例如:
当发出命令:db2 connect to db_name 后系统返回

SQL0332N There is no available conversion for the source code page "819" to the target code page "1386". Reason Code "1". SQLSTATE=57017

DB2 要求源代码页与目标代码页是互相兼容的, 在上边的例子中,源代码页为819与目标代码页为1386不兼容导致了数据库连接失败, 解决方法如下:
在发出db2 connect 命令失败的机器上,在DB2 命令窗口中执行如下命令后重新进行连接:
->
db2set db2codepage=1386 –I instance_name
db2 terminate

而在这里:SQL0332N 没有从源代码页 "1114" 至目标代码页 "UNKNOWN" 的转换。原因代码是 "1"。 SQLSTATE=57017

目标代码页是"UNKNOWN",很疑惑?

但是在我运行的一个连接数据的程序时,有这样的提示:IBM][CLI Driver][DB2/NT] SQL0332N    没有从源代码页 "1386" 至目标代码页 "950" 的转换。原因码为 "3"。    SQLSTATE=57017

所以,就用950来代替db2codepage=1386中的1386

解决过程如下:

系统:windows xp

在开始->运行中运行DB2CMD,出现db2 clp窗口

输入命令db2set db2codepage=950 回车

输入命令db2 terminate 回车

出现提示信息:DB20000I TERMINATE 命令成功完成

输入命令db2stop force 回车

出现提示信息:SQL1064N DB2STOP 处理成功.

输入命令db2start 回车

出现提示信息:SQL1063N DB2START 处理成功.

输入命令db2 connect to sample    回车    /* sample 是我要连接的数据库名称

出现提示信息:

    数据库连接信息

数据库服务器       =DB2/NT 8.2.4

SQL授权标识        =WUYI

本地数据库别名     =SAMPLE

到此数据库连接成功.

如果通过db2的控制中心里的配置助手测试连接,再没有提示错误信息.

而至于在没有主动对数据库进行配置修改就出现了以上的错误的原因,目前还没有检查

出来.待 找到原因以后,再同大家一起研究研究.


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理