我是JasperETL的新手。
我想将Excel文件导入MS SQL服务器。 假设我有一个包含这些列的excel文件(所有列都是必需的):
我想执行验证以检查用户提供的excel文件是否包含所有列?
答案 0 :(得分:0)
Talend只读取输入分隔文件架构中定义的位置列,因此如果您的文件包含三列或更多列,则前3列将作为您定义的架构读入。
假设您对此感到满意,那么下一步就是简单地强制执行一些与您的SQL Server数据库匹配的模式定义。
由于CSV是纯文本,我发现最简单的方法是以字符串形式读取所有列,然后使用tSchemaComplianceCheck组件检查数据类型和长度或精度,该组件将过滤掉不符合中定义的模式的行。组件。然后,这允许您对这些无效行执行某些操作,而不是仅忽略它们,如果您在输入组件上定义了严格的架构,则会发生这种情况。
要检查是否提供了所有列,只需删除可以为空的复选框。您可能还想使用tFilterRow组件来检查每个字段等于""
的位置(空白)。