如何删除信息中减号和数字之间的空格

时间:2016-09-20 14:39:51

标签: informatica informatica-powercenter informatica-powerexchange

我有一个问题,其中有一个数字字段,其中包含数据  ( - 98765.00),减去{spaces] {数字} ?,我需要删除减号和数字之间的空格,得到的是(-98765.00),如何在表达式转换中执行此操作。

字段数据类型为十进制(8,2)。

谢谢,  基兰

3 个答案:

答案 0 :(得分:0)


您可以使用REG_REPLACE功能替换空格
为此,您需要遵循以下步骤,

*创建两个可变端口
* REG_REPLACE - 函数需要字符串列,因此您需要使用 TO_CHAR 函数将十进制列转换为字符串列 第一个变量端口(字符串) - TO_CHAR(column_name)
*在以前的端口数据转换为字符串,现在再次将其转换为十进制并应用 REG_REPLACE 功能
第二个变量端口(十进制) - to_decimal(reg_replace(first_variable_port,'s+',''))
s - 确定信息正则表达式中的空格


见下图, enter image description here
使用的是相同的号码。使用相同的数据类型和功能

调试器通过删除下图中的空白区域来提供精确的结果,

enter image description here
可能是您遇到的其他转换问题。调试并验证数据一次。

希望你明白,任何问题随时都可以问 要享受信息,请在https://etlinfromatica.wordpress.com/

上享受乐趣

答案 1 :(得分:0)

output_port: TO_DECIMAL(REPLACECHR(FALSE,input_port,' ',''))

REPLACECHR用空字符替换空格,基本上删除它们。第一个参数可以是TRUE / FALSE来指定区分大小写,但在这种情况下它并不重要。

答案 2 :(得分:0)

如果我的理解是正确的,您需要同时替换spacesbrackets。这是表达式:

TO_DECIMAL(
    REPLACECHR(0,
        REPLACECHR(0, '(- 98765.00)', ' ', '') -- this part does the space replacement
    , '()', '') -- this part replaces the brackets
)