如何在db2查询中将字符集转换为unicode

如何在db2查询中将字符集转换为unicode,unicode,db2,ebcdic,Unicode,Db2,Ebcdic,服务器:运行DB2的IBMi系列AS/400 客户端:使用unixodbc的Linux 我在DB2数据库中有一个表,其中有一列使用CCSID 836(简体中文EBCDIC)的数据。我想在UTF-16中获得结果,以便它们在其他系统上工作,但我很难找到正确的转换方法 当我尝试时: SELECT CAST(MYCOLNAME AS VARCHAR(100) CCSID 13491) FROM MY.TABLE 我得到一个错误: SQL State: 22522 Vendor Code: -189 M

服务器:运行DB2的IBMi系列AS/400

客户端:使用unixodbc的Linux

我在DB2数据库中有一个表,其中有一列使用CCSID 836(简体中文EBCDIC)的数据。我想在UTF-16中获得结果,以便它们在其他系统上工作,但我很难找到正确的转换方法

当我尝试时:

SELECT CAST(MYCOLNAME AS VARCHAR(100) CCSID 13491) FROM MY.TABLE
我得到一个错误:

SQL State: 22522
Vendor Code: -189
Message: [SQL0189] Coded Character Set Identifier 13491 not valid. Cause . . . . . :  Coded Character Set Identifier (CCSID) 13491 is not valid for one of the following reasons: -- The CCSID is not EBCDIC. -- The CCSID is not supported by the system. -- The CCSID is not vaid for the data type. -- If the CCSID is specified for graphic data, then the CCSID must be a DBCS CCSID. -- If the CCSID is specified for UCS-2 or UTF-16 data, then the CCSID must be a UCS-2 or UTF-16 CCSID. -- If the CCSID is specified for XML data, then the CCSID must be SBCS or Unicode. It must not be DBCS or 65545.

如何将CCSID 836中的数据转换为UTF-16?我在
UNICODE\u STR()

方面同样不成功,我无法解释原因,但以下是有效的方法:

SELECT CAST(MYCOLNAME AS VARCHAR(100) CCSID 935) FROM MY.TABLE

该列的本地CCSID是836,看起来与935非常相似,所以我不理解其中的区别。但是935适合我。

请编辑您的问题,说明Linux上安装了哪个DB2客户机名称和版本/fixpack,以及Linux发行版名称和发行版。还请指定您在Linux上安装的语言环境(输出
locale-a
),以及unixodbc的有效语言环境(值$LANG)。