首页 > 解决方案 > 将 oracle 表中的前导零提取到文件中

问题描述

我正在从 oracle 表中提取数据到文本文件,并且我有以下数字列。当我在文件中选择以下列时,它会给我所有我想要抑制的前导零。

Select ltrim(col_1,'0'),ltrim(col_2,'0'),ltrim(col_3,'0') from table1 

数据类型:

Col_1 ---NUMBER(10,2), 
Col_2 ---NUMBER(38,0),
Col_3 ---NUMBER(15,1)

电流输出:

00000303.44|0| 00000000000008.2    
00000000.00|26| 00000000000030.2    
00000473.40|0| 00000000000010.0

预期输出:

303.44|0|8.2    
0|26|30.2    
473.4|0|10

如果我需要更改数据类型以获得预期输出,请告诉我。我什至试过TO_CHAR(TRIM(LEADING 0 FROM col_name)我没有得到预期的输出。

标签: oracledatastage

解决方案


这是由数据阶段作业的最后一个输出阶段中设置的数据类型引起的。当一列设置为小数时,datastage 将用前导零填充剩余位置,直到您的小数字段的大小。解决此问题的最简单方法是在文件输出阶段之前放置一个转换,并在最后阶段将所有列转换为 varchar,修剪所有前导零。


推荐阅读