0

我有一个工作正常的逻辑视图,但我无法在报告工具中显示数据,因为它的 CCSID 是 HEX。如果我可以将它创建为 PF,因为它在 AS/400 DB2 i 上是已知的,那么我可以在 CCSID 上使用 CHGPF(CHGLF 没有。)

这可以做到吗?这是在 IBM I DB2 上

这是代码:

CREATE VIEW astlib.acbalmpk AS (
   (SELECT  LMLTPC, COALESCE(IRLOC1,'') as IRLOC1,
    COALESCE(IRLOC2,'') as IRLOC2,
    COALESCE(IRLOC3,'') as IRLOC3,
    IRPRT#,
    IRQOH#,
    IRWHS#,
    '' as IEPRT#,
    '.00' as IEQOH#,
    '' as IELOC1,
    '' as IELOC2,
    '' as IELOC3,
    '' as IERIDC,
    '' as IEWHS#
FROM
   (SELECT LMLTPC, LMLOC1, LMLOC2, LMLOC3
    FROM ASTDTA.ICLOCMLM
    WHERE LMLTPC IN ('PAL', 'RAK'))t1
   LEFT OUTER JOIN
   (SELECT IRLOC1, IRLOC2, IRLOC3, IRPRT#, IRQOH#, IRWHS#
    FROM ASTDTA.ICBLDTIR) t2
   ON LMLOC1=IRLOC1 AND LMLOC2=IRLOC2 AND LMLOC3=IRLOC3)
UNION ALL
   (SELECT ' ' as LMLTPC,
    ' ' as IRLOC1,
    ' ' as IRLOC2,
    ' ' as IRLOC3,
    '' as IRPRT#,
    '.00' as IRQOH#,
    '' as IRWHS#,
    IEPRT#,
    IEQOH#,
    IELOC1,
    IELOC2,
    IELOC3,
    IERIDC,
    IEWHS#
 FROM ASTDTA.ICBALMIE)
)
4

1 回答 1

2

修复作业的 CCSID 或修复基础表的 CCSID 或修复系统的 CCSID 或配置 ODBC 驱动程序以转换 CCSID 65535 或编写以正确 CCSID 返回数据的存储过程

对于这个特定的解决方法,使用 CAST 使每一列都成为正确的 CCSID。

SELECT cast (LMLTPC as char (30) CCSID 37) as LMLTPC...
于 2013-08-23T14:45:21.623 回答