我有一个问题,其中有一个金额字段,其中包含 (-98765.00),minus{spaces]{numbers} 之类的数据,我需要删除减号和数字之间的空格并得到 (-98765.00),我如何在表达转换中做到这一点。
字段数据类型为十进制 (8,2)。
谢谢,基兰
我有一个问题,其中有一个金额字段,其中包含 (-98765.00),minus{spaces]{numbers} 之类的数据,我需要删除减号和数字之间的空格并得到 (-98765.00),我如何在表达转换中做到这一点。
字段数据类型为十进制 (8,2)。
谢谢,基兰
如果我的理解是正确的,您需要同时替换spaces
和brackets
。这是表达式:
TO_DECIMAL(
REPLACECHR(0,
REPLACECHR(0, '(- 98765.00)', ' ', '') -- this part does the space replacement
, '()', '') -- this part replaces the brackets
)
output_port: TO_DECIMAL(REPLACECHR(FALSE,input_port,' ',''))
REPLACECHR 用空字符替换空格,实质上是删除它们。第一个参数可以是 TRUE/FALSE 来指定是否区分大小写,但在这种情况下并不重要。
您可以使用REG_REPLACE
函数替换空格
要实现此目的,您需要按照以下步骤操作,
* 创建两个变量端口
* REG_REPLACE - 函数需要字符串列,因此您需要使用TO_CHAR函数将十进制列转换为字符串列
第一个变量端口(字符串) - TO_CHAR(column_name)
* 在之前的端口数据被转换为字符串,现在再次将其转换为十进制并应用REG_REPLACE函数
第二个变量端口(十进制) - to_decimal(reg_replace(first_variable_port,'s+',''))
s - 确定 informatica 正则表达式中的空格
见下图,
使用您提供的相同数字. 使用相同的数据类型和函数
调试器通过删除下图中的空白来给出确切的结果,
希望你明白了,如有任何问题,请随时提出
要享受 informatica,请在https://etlinfromatica.wordpress.com/上玩得开心