代码之家  ›  专栏  ›  技术社区  ›  AlliDeacon

DB2查询结果为十六进制格式——需要字符/字符串

  •  0
  • AlliDeacon  · 技术社区  · 8 年前

    我有一个查询,可以使用pythonsqltester在DB2表上运行,它返回我要查找的字符串值。
    然而,当我直接在数据库上运行它时,它返回一个十六进制值。如果您能帮助我们将结果转换为字符串,我们将不胜感激!
    以下是字段定义:

    ORCTL      CCDATA         243      A   14  256 Order Control File Data 
    

    我对iSeries的疑问是:

    select ccdata from ORCTL where ccctlk = 'BUYRAK'
    
    2 回复  |  直到 8 年前
        1
  •  3
  •   Dam    8 年前

    使用查询,您可以使用另一个CCSID强制转换字符串,例如:

    select cast(ccdata as char(14) CCSID 37) from ORCTL where ccctlk = 'BUYRAK'
    
        2
  •  1
  •   Charles    8 年前

    而是返回EBCDIC。

    您的列可能被标记为CCSID 65535,这告诉系统不要翻译它。

    解决此问题的正确方法是确保列使用适当的CCSID进行标记;例如,美国英语为37。

    另一种方法是在您使用的驱动程序设置中查找“强制转换”选项。