2017-01-25 11 views
1

私はBI SchoolプロジェクトのTalend Open Studio for Data Integrationを使用しようとしています。私はこのようないくつかのデータを持つtxtファイルを持っています:Talend - mysqlデータベースに挿入する前に列の長さを確認してください。

NoClient;Name;Region;State;City;Postcode 
24;Edna Thomas;West;California;Laguna Niguel;92677 

私はデータを変換してテーブルに挿入するためにジョブを使いました。それはうまく動作します。

ここで、SQLエラーを処理したいと思います。たとえば、DBで指定された列の長さが10で、ジョブがその列に11の長さのデータを挿入しようとすると、SQLエラーが発生します。

どうすれば実現できますか? tMysqlOutputでの特定の機能はありますか私は単純に挿入する前にデータを確認するために、次のようにトリガーを使用する必要があります。

CREATE TRIGGER my_trigger 
BEFORE INSERT 
ON my_table 
    FOR EACH ROW BEGIN 

    IF (SELECT LENGTH(NEW.Noclient)>255) THEN 
    // instructions 
END IF 

はそれが十分に明らかだホープ!ありがとう、事前におかげで、悪い英語のために申し訳ありません:-)

答えて

1

多分あなたはtmapの各変数のチェックを行うことができます。例えば同様

StringHandling.LEN(var) <= 10 ? var : StringHandling.LEFT(var,10) 

そして、あなたはあなたのフィールドのサイズの関数に適応します。

+0

それを行うには良い方法だが、私は私がtschemacompliancecheckと他のものを使用すると思います。私の場合はそれが良いと思う。とにかくありがとう:-) – Arhyaa

1

このためのコンポーネントがあります:tSchemaComplianceCheck 素敵な例はで見つけることができます: http://dwetl.com/2015/03/30/data-validation-using-tschemacompliancecheck/

+0

このソリューションをありがとう。私はそれを試して、それが動作するかどうかを検証します! :-) – Arhyaa

+0

@Arhyaaは期待通りに動作しましたか? –

関連する問題