excel中的Oracle查询输出

问题描述 投票:4回答:7

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

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

oracle plsql excel-2003
7个回答
4
投票

您的请求有简单的解决方案。

通过使用ora_excel,生成Excel xlsx文件的小型pl / sql包,您可以选择数据并将所选数据导出到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

干杯


3
投票

在excel中很容易做到;完成后,用户可以右键单击数据并说“刷新”以获取最新更新。

但为什么重新发明轮子很多在线文章已经解释了如何做到这一点...这是一个

http://blog.mclaughlinsoftware.com/microsoft-excel/how-to-query-oracle-from-excel-2007/

连接到表后,可以编辑连接上的属性并输入自定义SQL(从开发人员工具中复制和粘贴)


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中打开。使用正确的列别名,以便用户了解列标题。


2
投票

快捷方式:

首先创建一个包含查询的视图(最好的方法,因为您可能需要稍后更改此查询)。

一定要正确安装oracle客户端。

  • 在Excel(2007及更高版本)的数据选项卡中,这样做:

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

  • 现在输入您的DataSource名称(存储在tnsnames.ora中)和用户密码
  • 找到您的视图,然后您将拥有所需的一切。

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


2
投票

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

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

  1. 安装和配置oracle的ODBC驱动程序(由于excel03是32位应用程序,因此必须安装32位驱动程序)。可以在“开始”>“管理工具”>“ODBC数据源管理器”下配置ODBC
  2. 打开excel 2003并转到数据>导入外部数据>新数据库查询。

这应该会启动MS Query,这是一个类似Access的接口。

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


2
投票

步骤1运行查询右键单击Resultenter image description here

步骤2单击Export enter image description here

步骤3选择格式到Excel输入数据表名称和位置

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


1
投票

你可以做一件事。

  1. 首先使用符号(如,或#)以包含列分隔符的形式生成输出。
  2. 将数据导入excel,然后将占位符定义为列分隔符。
© www.soinside.com 2019 - 2024. All rights reserved.