【发布时间】:2010-01-25 21:30:44
【问题描述】:
有谁知道如何使用 TOAD 中用于数据分析师的报告自动化将多个查询的结果导出到同一 Excel 工作簿的不同工作表中? 谢谢
【问题讨论】:
标签: oracle excel automation report toad
有谁知道如何使用 TOAD 中用于数据分析师的报告自动化将多个查询的结果导出到同一 Excel 工作簿的不同工作表中? 谢谢
【问题讨论】:
标签: oracle excel automation report toad
我不确定您是否可以使用 Toad 自动执行此操作,但您可以使用 Excel 执行一个小技巧。
编写第一个查询并在 Toad 中执行,然后右键单击查询结果数据网格并选择“导出数据集...”,在 Excel 格式下选择“Excel 实例”并单击确定。它将打开 Excel 并添加一张包含查询数据的工作表。
对第二个查询重复相同的过程,它将向同一文档添加另一个工作表并填充第二个查询的数据。
在您执行所有查询并将其添加到 Excel 后保存 excel 文档。
如果您想完全自动执行此操作,可以使用另一种解决方案来创建包含多个工作表的单个 Excel 文档,这些工作表中加载了来自不同查询的数据。购买第三方PL/SQL包ORA_EXCEL。
这里是如何做到这一点的示例:
BEGIN
ORA_EXCEL.new_document;
ORA_EXCEL.add_sheet('Employees');
ORA_EXCEL.query_to_sheet('select * from employees');
ORA_EXCEL.add_sheet('Departments');
ORA_EXCEL.query_to_sheet('select * from departments', FALSE);
ORA_EXCEL.add_sheet('Locations');
ORA_EXCEL.query_to_sheet('select * from locations');
-- EXPORT_DIR is an Oracle directory with at least
-- write permission
ORA_EXCEL.save_to_file('EXPORT_DIR', 'example.xlsx');
END;
它可以生成 Excel 文件并将其存储到 Oracle 目录,或者您可以将生成的 Excel 文件放入 PL/SQL BLOB 变量中,这样您就可以将其存储到表中或创建自己的过程来分发文件,例如发送到电子邮件。
您可以在产品文档/示例页面上找到更多详细信息:http://www.oraexcel.com/examples
干杯
【讨论】:
我认为 TOAD 中不存在此功能。
直接从 PL/SQL 导出到 Excel 的常用解决方案 - Tom Kyte 的 SYLK api 的 OWA_SYLK 包装器 - 仅适用于单个工作表。有几种替代解决方案。
Sanjeev Sapre 有他的 get_xl_xml 包。顾名思义,它使用 XML 进行转换。 Find out more。
Jason Bennett 编写了一个生成 Excel XML 文档的 PL/SQL 对象。 Find out more.
【讨论】:
您不再需要编写代码来输出多张工作表的数据。 只要您的 SQL 有明确标识的查询(使用分号),TDA 或现在的 TDP 就会自动转储不同工作表中不同 SQL 的数据。
【讨论】:
我有 Toad for Data Analyst 2.6。我在查询之间使用关键字 GO。
Select * from tableA;
GO
Select * from tableB;
这会在 Excel 中创建两个选项卡。
【讨论】: