2017-04-24 48 views
0
不工作

我使用下面的查询DB2数据库的映射的SQ和发送记录到CSV目标:DB2串联在Informatica的

SELECT FIELD1||':'||FIELD2 FROM LIBRARY.FILE 

但其返回一些十六进制值,虽然它返回正确的号码的记录。 即使上面的查询在Squrrel中也能正常工作。

但是,当我不使用它做工精细分离器(以下查询):

SELECT FIELD1||FIELD2 FROM LIBRARY.FILE 

任何帮助。

回答

0

检查作业用户的CCSID。 FIELD1和FIELD2的CCSID与字符串':'不同。 FIELD1/2 CCSID来自数据库,我认为':'来自作业的CCSID。如果它们不同,DB2将返回EBCDIC中的串联结果。你要把你的 ':' 用相同的CCSID为FIELD1:

cast(':' as char(1) CCSID XXXX) 

DB2 query results in Hex format

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(':')