Ibm midrange 从该逻辑视图创建PF?

Ibm midrange 从该逻辑视图创建PF?,ibm-midrange,db2-400,Ibm Midrange,Db2 400,我有一个工作正常的逻辑视图,但是我不能在报告工具中显示数据,因为它的CCSID是十六进制的。如果我可以像在as/400DB2I上那样将其创建为PF,那么我可以在CCSID上使用CHGPF(CHGLF没有) 这能做到吗?这是在ibmidb2上实现的 代码如下: CREATE VIEW astlib.acbalmpk AS ( (SELECT LMLTPC, COALESCE(IRLOC1,'') as IRLOC1, COALESCE(IRLOC2,'') as IRLOC2,

我有一个工作正常的逻辑视图,但是我不能在报告工具中显示数据,因为它的CCSID是十六进制的。如果我可以像在as/400DB2I上那样将其创建为PF,那么我可以在CCSID上使用CHGPF(CHGLF没有)

这能做到吗?这是在ibmidb2上实现的

代码如下:

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)
)

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

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

SELECT cast (LMLTPC as char (30) CCSID 37) as LMLTPC...