我正在努力构建一个使用引用的CSV文件的导入工具。但是,CSV文件中的几个字段报告如下:
“=”“38000”“”
38000 是我需要的数据。我使用的数据集成软件(Talend 6.11)已经为我删除了前导和尾随双引号(因此,“38000”变为38000),但我找不到摆脱其他人的方法。
所以,基本上,我需要“=”“38000”“”成为“38000”,其中删除前导“=”并删除尾随“”。
是否有可以为我完成此操作的TRIM功能?也许Talend中有一种方法可以做到这一点吗?
答案 0 :(得分:1)
正如其他答案所述,您可以在SQL中执行该操作。或者,你可以在Talend中的Java,Groovy等中完成它。但是,如果存在执行该作业的现有Talend组件,我的偏好是使用它。这导致更快的开发,可能更少的测试和更容易的维护。话虽如此,重要的是要检查所有可用的组件,以便了解您可以使用的组件。
您可以使用Talend组件tReplace来检查要修剪引号和等号的每个输入列。单个tReplace组件可以在多个输入列上执行搜索和替换操作。如果所有替换相互关联,我会将它们保存在单个tReplace中。当它到达不相关的替换时,我可以将它们放在一个新的tReplace中,以便逻辑操作被组织并组合在一起。
tReplace
For a given Input Column
search for "=", replace with ""
search for "\"", replace with ""
答案 1 :(得分:0)
类似的东西:
SELECT format( '"%s"', trim( both '"=' from '"=""38000"""' ) );
-[ RECORD 1 ]---
format | "38000"
1st:trim()函数删除所有"和=字符。结果简直就是38000
第二:使用格式可以添加双引号以获得如意的最终结果
或者,可以使用regexp和其他Postgres字符串函数。
查看更多: https://www.postgresql.org/docs/current/static/functions-string.html