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