我在映射的SQ中使用以下查询DB2数据库并将记录发送到csv目标:
SELECT FIELD1||':'||FIELD2 FROM LIBRARY.FILE
但它返回了一些十六进制值,尽管它返回了正确的记录数。 即使上述查询在Squrrel中也能正常工作。
但是当我没有使用分隔符时,它工作正常(查询下方):
SELECT FIELD1||FIELD2 FROM LIBRARY.FILE
任何帮助。
答案 0 :(得分:0)
检查作业用户的CCSID。 FIELD1和FIELD2的CCSID与字符串':'不同。 FIELD1 / 2 CCSID来自数据库,我认为':'来自作业的CCSID。如果它们不同,DB2将返回EBCDIC中串联的结果。使用与FIELD1:
相同的CCSID转换':'cast(':' as char(1) CCSID XXXX)
答案 1 :(得分:0)
如果您使用
select field1 concat ':' concat field2 from yourlib.yourtable
OR
select concat(field1, concat(':', field2)) from yourlib.yourtable
注意:在AS400上你有一个工具可以导出你在IFS上的表格nammed CPYTOIMPF
示例:
CPYTOIMPF FROMFILE(yourlib/yourtable) TOSTMF('/yourIFSdir/outputfile.txt') STMFCODPAG(*PCASCII) RCDDLM(':')