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/
我正在尝试将 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/