繁体   English   中英

如何将查询的实际TEXT从Pentaho Spoon导出到Excel文件?

[英]How do I export the actual TEXT of a query from Pentaho Spoon into an Excel file?

我使用Pentaho Spoon进行数据集成(又名PDI)。 我的内部客户希望将报告写入excel文件,这很好,但是他还希望查看我在工作簿的单独选项卡中使用的查询。 有没有一种方法可以使用Spoon将查询本身的实际文本 (而不是结果)导出到.xlsx?

换句话说,如果一个查询是

从80ies_shows.childrens_cartoons中选择木偶,花生,雪碧

然后我想有一个显示

从80ies_shows.childrens_cartoons中选择木偶,花生,雪碧

您可以使用PDI表输入从变量获取数据。 尝试定义一个将保留所有列名的变量(以及另一个包含表名的变量),然后尝试将此变量传递给“表输入步骤”。 例如:在表格输入步骤中定义:

Select ${COLUMN VARIABLE} FROM ${TABLE NAME VARIABLE}

这将执行您的查询。 现在,要在Excel中生成查询,请使用“修改的Java脚本”步骤来重新创建相同的结构。 JS代码片段如下所示:

LOOP i=1 till getInputRowMeta().size()

   var fields =getInputRowMeta().getValueMeta(i) /* This will give you the list of Input Columns along with the datatype e.g. Muppets String(100) */

END LOOP

从您的字段变量中删除数据类型,并创建一个最终变量,其串联为

var final_query="SELECT" + cleaned fields variable from the above JS + "FROM" + table name;

因此,您生成一个查询,可以轻松地在excel输出中输出该查询。

这是一个漫长的过程。 但是,除了使用上述方法生成查询之外,我无法获得任何其他解决方案。 希望这个解决方案对您有好处! :)

大多数现代数据库都支持动态sql。 如果使用的是SQL Server,请查看sp_executesql。 所有这些意味着您的SQL代码将存储为字符串并以这种方式执行。

现在要在pentaho中使用动态SQL。

设置一个作业,该作业创建excel文件以进行输出,并且还获取通过作业调用或从文件系统传递的sql。 现在将sql传递到作业中的转换中,该转换将负责填充excel文件。 将sql写入所需的任何工作表。

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM