4

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

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

4

7 回答 7

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; 

有关更多详细信息,请查看此处

干杯

于 2014-01-15T09:57:54.923 回答
3

Since you cannot use OLE DB in your version of Excel. Use SPOOL to create a CSV file.

 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

The .csv file should open in Excel by default. Use proper column aliases so that users understand the column headers.

于 2012-08-04T19:22:25.960 回答
3

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

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

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

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

于 2012-08-03T12:51:14.330 回答
2

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

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

  1. 安装和配置 oracle 的 ODBC 驱动程序(您必须安装 32 位驱动程序,因为 excel03 是 32 位应用程序)。可以在开始 > 管理工具 > ODBC 数据源管理器下配置 ODBC

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

这应该会调出 MS Query,它是一个类似于 Access 的界面。

显然,这是一个非常简短的开始,可以让您朝着正确的方向前进。如果您有任何具体问题,请发表评论,我会尽力帮助您。

于 2012-08-08T17:15:43.893 回答
2

快捷方式:

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

请务必正确安装 oracle 客户端。

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

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

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

  • 找到你的看法,然后你就会有你需要的东西。

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

于 2012-08-03T13:04:51.687 回答
2

第 1 步运行您的查询右键单击结果在此处输入图像描述

第 2 步单击导出 在此处输入图像描述

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

第 4 步单击下一步,然后 在此处完成输入图像描述

于 2019-03-04T10:36:32.457 回答
1

你可以做一件事。

  1. 首先以包含使用符号(如,或#)的列分隔符的形式生成输出。
  2. 将数据导入 excel,然后将占位符定义为列分隔符。
于 2012-08-03T17:47:33.857 回答