2016-08-17 41 views
0

を私が引用されたCSVファイルを利用してインポートツールを構築するために働いているが、CSVファイルのフィールドのいくつかは、このようなとして報告されています。PostgreSQLは先頭と末尾の文字をトリミング:=と「

」= 「」38000「は」」

は、(そう、 『38000』は38000となります)私が使用してデータ統合ソフトウェア(才能6.11)は、すでに私のために先頭と末尾の二重引用符を取り除きます。私は必要なデータであり、私はそれらの他の人を取り除く方法を見つけることができません。

私は "38000"となるために "=" "38000"先行する "="が削除され、末尾の ""が削除されます。

これを実現するTRIM機能はありますか?おそらくTalendにこれを行う方法がありますか?そのような

答えて

0

何か:第一

SELECT format('"%s"', trim(both '"=' from '"=""38000"""')); 

-[ RECORD 1 ]--- 
format | "38000" 

:トリム()関数は、すべてを削除」と=の文字の結果は、単に第二38000
です。フォーマットと希望的観測最終結果

を取得するために戻って二重引用符を追加することができます

また、正規表現や他のPostgresの文字列関数を使用することができます

多くを参照してください:。 https://www.postgresql.org/docs/current/static/functions-string.html

1

もう1つの答えとして、SQLでその操作を行うことができます。あるいは、Talend内のJava、Groovyなどで実行できます。ただし、ジョブを実行する既存のTalendコンポーネントがある場合、私の好みはそれを使用することです。その結果、開発が迅速化され、テストが削減され、保守が容易になります。そのように言えば、利用可能なすべてのコンポーネントを確認することが重要なので、利用可能なものを知っている必要があります。

TalendコンポーネントtReplaceを使用すると、引用符と等号をトリミングする入力列をそれぞれ検査できます。単一のtReplaceコンポーネントは、複数の入力列の操作を検索および置換できます。すべての置換が互いに関連している場合は、それらを1つの場所に保持します。無関係な置換を行う時点になると、それらを新しいtReplaceに配置して、論理演算をまとめてグループ化することができます。

tReplace 
For a given Input Column 
    search for "=", replace with "" 
    search for "\"", replace with "" 
関連する問題