有什么方法可以将 Oracle 表中的数据提取到 Excel 中的多个工作表中?
例如:我有两张桌子checkpoints
和hold
. 我想要数据 from checkpoints
to go tosheet1
和MS excel
data from hold
to go to sheet2
。
这可以在oracle中实现吗?
Oracle version: Oracle 11G
- 编辑: 我想使用 PL/SQL 来实现它。此代码将作为批处理作业执行。
如果您要生成的电子表格非常简单(即只有包含数据的单元格和多张工作表),您可以尝试Alexandria PL/SQL 库中的 Excel 生成 API - 只需抓取XLSX_BUILDER_PKG
及其依赖项(我认为没有很多) 它应该可以完成这项工作。
我自己用它来生成 XLSX 格式的简单电子表格,并且全部使用 PL/SQL。它以 BLOB 形式返回结果,如果您需要数据库服务器上的结果,库中有另一个例程用于使用 UTL_FILE 将其吐出。
当然这是可能的,但这取决于您希望如何完成。
1) 如果您有报告工具(Jasper Reports、Oracle BI),您可以使用该工具创建报告并导出数据。
2) 如果您有开发工具(Toad、SQL Developer),您可以“手动”导出这两个表。
3) 如果您知道如何编写代码,那么您可以使用 API 创建 Excel 文件并用数据填充它。您可以使用 PL/SQL、PHP、C、C++ 或几乎任何其他语言,它只需要一个 Oracle API 和一个 Excel API。
有一个 PL/SQL 包可以创建带有多个工作表的 Excel 文档,并将 SQL 查询中的数据放到单独的工作表中。
请看下面的例子:
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;
您可以在此处找到更多详细信息: http ://www.oraexcel.com/examples/pl-sql-excel-query-to-sheet-export