Talend - 在插入 mysql 数据库之前检查列的长度

Talend - Check columns lenght before inserting into mysql database

我正在尝试将 Talend Open Studio 用于 BI 学校项目的数据集成。我有一个包含如下数据的 txt 文件:

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

我使用作业来转换数据并将其插入到表中。效果很好。

现在,我想处理 SQL 错误。例如,如果数据库中指定的列长度为 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

希望已经足够清楚了!提前致谢,抱歉英语不好:-)

也许你可以检查 tmap 中的每个变量。

例如:

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

并且您根据字段的大小进行调整。

有一个组件:tSchemaComplianceCheck 一个很好的例子可以在以下位置找到: http://dwetl.com/2015/03/30/data-validation-using-tschemacompliancecheck/