2010-11-15 107 views
2

我在发现Pentaho DI,我被这个问题困住了:Pentaho水壶:如何执行“插入...选择”与SQL脚本步骤?

我想从一个csv文件插入数据到一个不支持“插入表”步骤的自定义数据库。所以我想用sql脚本一步,一个请求:

INSERT INTO myTable 
SELECT * FROM myInput 

我的转型将是这样的:

transformation

我不知道如何从我的所有数据将csv注入到“myInput”字段中。

有人可以帮助我吗?

感谢很多:)

+0

你能提供一些样本数据吗?也有可能知道输出数据库类型是什么,以便它可以被测试? – rwilliams 2010-11-17 23:34:22

回答

4

当你第一次编辑SQL脚本步,点击“获取字段”按钮。这将会将参数(来自csv的字段)加载到左下角的框中。删除您不想插入的参数(字段)。

在你的sql脚本中写下你的查询,就像这样,问号是你的参数。

insert into my_table (field1,field2,field3...) values ('?','?','?'...); 

选中复选框execute for each rowexecute as a single statement。这是真的。让我知道如果您有任何问题,并且如果您提供示例数据,我会为您提供一个示例ktr文件来查看。

+0

aka r-dub:+1很明确的答案。 – blunders 2010-11-30 03:39:35

0

使用以下代码 与CTE为 ( SELECT * FROM myInput ) 从CTE选择* 成myTable的 ;

2

我想你错了。你应该得到一个cvs文件输入步骤和一个表输出步骤。

正如rwilliams所说,在cvs文件输入步骤获取字段;更重要的是,在表输出有一个数据库字段选项卡。输入字段映射是正确的选择。猜测功能是惊人的。

此外,系统可以在目标连接Db服务器中不存在目标表时,生成目标表创建sql语句。