我发现了Pentaho DI,我遇到了这个问题:
我想将csv文件中的数据插入自定义数据库,该数据库不支持“插入表”步骤。所以我想使用sql脚本步骤,只有一个请求:
INSERT INTO myTable
SELECT * FROM myInput
我的转变是这样的:
我不知道如何将来自csv的所有数据都注入“myInput”字段。
有人可以帮助我吗?
非常感谢:)
答案 0 :(得分:5)
首次编辑SQL脚本步骤时,单击“获取字段”按钮。这将把参数(来自你的csv的字段)加载到左下角的框中。删除您不想插入的参数(字段)。
在你的sql脚本中编写类似这样的查询,其中问号是你的参数。
insert into my_table (field1,field2,field3...) values ('?','?','?'...);
选中execute for each row
和execute as a single statement
复选框。这真的是关于它。如果您有任何其他问题,请告诉我。如果您提供样本数据,我会为您提供一个示例ktr文件供您查看。
答案 1 :(得分:2)
我认为你走错了路。您应该获得 cvs文件输入步骤和表格输出步骤。
正如rwilliams所说,在cvs文件输入步骤获取字段;更重要的是,在表格输出中有一个数据库字段选项卡。输入字段映射是正确的选择。猜测函数是惊人的。
此外,当目标连接Db服务器中不存在目标表时,系统可以生成目标表创建sql语句。
答案 2 :(得分:0)
使用以下代码 与cte as ( SELECT * FROM myInput ) 选择 * 进入myTable 来自cte;