excel中的Oracle查询输出

时间:2012-08-03 12:46:03

标签: oracle plsql excel-2003

我有一个Oracle 10G数据库,我需要编写一个相当简单的查询来连接两个表并选择一些数据。但是,我想将结果列表导出到excel,因此最终用户可以使用此.xls文档查看结果并按其中一个字段(位置)进行过滤

当我编写查询时,是否有一种简单的方法可以生成/创建一个excel文档,如上所述保存这些结果? SQL不需要在excel中运行,但我想这是一个有用的功能,现在我考虑一下! 感谢。

7 个答案:

答案 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客户端。

  • 在Excel(2007及以上版本)的数据标签中,采用以下方式:

来自其他来源 - >从数据连接向导 - > Microsoft数据访问 - 用于Oracle的OLE DB提供程序

  • 现在输入您的数据源名称(存储在tnsnames.ora中)和用户密码

  • 找到您的视图,然后您将拥有所需的一切。

您可以保存密码并设置选项以在连接属性中自动刷新。

答案 4 :(得分:2)

您可以直接从Excel 2003查询oracle数据库,但是,您的sql语句由MS Query解释,因此通常会令人沮丧。我将假设有问题的机器已经能够查询您的数据库并正确配置了数据库命名。

要从excel 2003查询数据库,您必须:

  1. 安装和配置oracle的ODBC驱动程序(由于excel03是32位应用程序,因此必须安装32位驱动程序)。可以在start>下配置ODBC。管理工具> ODBC数据源管理员

  2. 打开excel 2003并转到数据>导入外部数据>新数据库查询。

  3. 这应该调出MS Query,这是一个类似Access的接口。

    显然,这是一个非常简短的启动器,可以让你走上正确的方向。如果您有任何具体问题,请发表评论,我会尽力帮助您。

答案 5 :(得分:2)

步骤1 运行查询 右键点击结果enter image description here

第2步 点击导出 enter image description here

第3步 选择格式化为Excel 输入数据表名称和位置

步骤4 单击下一步,然后完成 enter image description here

答案 6 :(得分:1)

你可以做一件事。

  1. 首先使用符号(如,或#)包含列分隔符的形式生成输出。
  2. 将数据导入excel,然后将占位符定义为列分隔符。