我想创建一个Spoon
转换,它可以处理列的多个值。
我的转换输入是一个CSV文件。在该CSV文件中,有一列名为'技术'其中包含0或更多由分号分隔的值,如下所示。
+------------------------------------------------------+
row_id | Technology
+------------------------------------------------------+
1 | Cobol ; Db2 ; Jcl ; Vsam ; Cics ; Changeman ;
2 | Oracle ; Sql ; Db2 ; Oracle 9i ;
3 | Windows 2000 ; SQL ;
+------------------------------------------------------+
我在数据库中有一个名为' Technologies'其架构如下:
+----------------------+
Technologies
+----------------------+
id | technology_name
+----------------------+
其中id
列设置为自动增量。
我想仅在technology
表中没有该值的情况下插入Technologies
列的值。
任何人都可以告诉我
1)使用哪种类型的步骤来分割technology
列的值?
2)如何只插入一次值?例如,在row 1
和row 2
中,Db2
会重复,但我只想插入Db2
一次。
提前致谢!
答案 0 :(得分:4)
使用“拆分字段”(在“转换”下)拆分内容。
CSV文件输入 - >拆分字段 - >其余的转型
将“Field to Split”设置为“Technology”并将“Delimiter”设置为分号。
关于非重复字段,我的建议是让名称本身成为表格的关键。将其转换为小写并用数据库安全等效替换任何空格/特殊字符,然后将其作为主键。您应该最终得到一个只有唯一实例的表。
HTH