【问题标题】:DB2 query results in Hex format -- Need Character/String十六进制格式的 DB2 查询结果——需要字符/字符串
【发布时间】:2016-11-21 19:00:27
【问题描述】:

我有一个可以使用我的 python SQL 测试器在 DB2 表上运行的查询,它返回我正在寻找的字符串值。
但是,当我直接在我的数据库上运行它时,它会返回一个十六进制值。将不胜感激以字符串形式获取结果的任何帮助!
这是字段定义:

ORCTL      CCDATA         243      A   14  256 Order Control File Data 

我对 iSeries 的查询是:

select ccdata from ORCTL where ccctlk = 'BUYRAK'

【问题讨论】:

标签: db2 db2-400


【解决方案1】:

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

select cast(ccdata as char(14) CCSID 37) from ORCTL where ccctlk = 'BUYRAK'

【讨论】:

【解决方案2】:

我的猜测是它不会返回十六进制...

而是返回 EBCDIC。

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

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

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

【讨论】:

  • 好的,有道理。这是我们的 AS/400 上的一个表,因此我无法真正更改该列。 DB2 中有没有办法将此值“转换”为可读文本?
猜你喜欢
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 2014-03-07
  • 2010-10-04
  • 2022-07-08
相关资源
最近更新 更多