我有一个Oracle 10G数据库,我需要编写一个相当简单的查询来连接两个表并选择一些数据。但是,我想将结果列表导出到excel,因此最终用户可以使用此.xls文档查看结果并按其中一个字段(位置)进行过滤
当我编写查询时,是否有一种简单的方法可以生成/创建一个excel文档,如上所述保存这些结果? SQL不需要在excel中运行,但我想这是一个有用的功能,现在我考虑一下! 感谢。
答案 0 :(得分:4)
您的请求有简单的解决方案。
通过使用生成Excel xlsx文件的小型pl / sql包ora_excel,您可以选择数据并将所选数据导出到Excel并设置过滤。
请参阅以下示例:
BEGIN
ORA_EXCEL.new_document;
ORA_EXCEL.add_sheet('My sheet');
ORA_EXCEL.query_to_sheet('select * from employees'); -- Select data from database
ORA_EXCEL.set_cells_filter('A1', 'K1'); -- Add cell filtering from column A1 to column K1
-- Save generated Excel to file with name example.xlsx to Oracle folder EXAMPLE_XLSX
ORA_EXCEL.save_to_file('EXPORT_DIR', 'example.xlsx');
END;
有关详细信息,请查看here
干杯
答案 1 :(得分:3)
在excel中很容易做到;完成后,用户可以右键单击数据并说“刷新”以获取最新更新。
但是为什么重新发明轮子很多在线文章已经解释了如何做到这一点......这是一个
http://blog.mclaughlinsoftware.com/microsoft-excel/how-to-query-oracle-from-excel-2007/
连接到表后,您可以编辑连接上的属性并输入自定义SQL(从开发人员工具中复制和粘贴)
答案 2 :(得分:3)
由于您无法在您的Excel版本中使用OLE DB。使用SPOOL
创建CSV文件。
SQL> SET echo off
SQL> SET verify off
SQL> SET colsep ,
SQL> SET pagesize 0
SQL> SET trimspool on
SQL> SET feedback off
SQL> SPOOL ON
SQL> SPOOL C:\data.csv
SQL> SELECT COLUMN1,COLUMN2,COLUMN3....
FROM TABLE;
SQL> SPOOL OFF
默认情况下,.csv
文件应在Excel中打开。使用正确的列别名,以便用户了解列标题。
答案 3 :(得分:2)
快捷方式:
首先创建一个包含查询的视图(最佳方式,因为您可能需要稍后更改此查询)。
请务必正确安装oracle客户端。
来自其他来源 - >从数据连接向导 - > Microsoft数据访问 - 用于Oracle的OLE DB提供程序
现在输入您的数据源名称(存储在tnsnames.ora中)和用户密码
找到您的视图,然后您将拥有所需的一切。
您可以保存密码并设置选项以在连接属性中自动刷新。
答案 4 :(得分:2)
您可以直接从Excel 2003查询oracle数据库,但是,您的sql语句由MS Query解释,因此通常会令人沮丧。我将假设有问题的机器已经能够查询您的数据库并正确配置了数据库命名。
要从excel 2003查询数据库,您必须:
安装和配置oracle的ODBC驱动程序(由于excel03是32位应用程序,因此必须安装32位驱动程序)。可以在start>下配置ODBC。管理工具> ODBC数据源管理员
打开excel 2003并转到数据>导入外部数据>新数据库查询。
这应该调出MS Query,这是一个类似Access的接口。
显然,这是一个非常简短的启动器,可以让你走上正确的方向。如果您有任何具体问题,请发表评论,我会尽力帮助您。
答案 5 :(得分:2)
步骤1 运行查询 右键点击结果enter image description here
第2步 点击导出 enter image description here
第3步 选择格式化为Excel 输入数据表名称和位置
步骤4 单击下一步,然后完成 enter image description here
答案 6 :(得分:1)
你可以做一件事。