2012-08-03 79 views
4

我有一個Oracle 10G數據庫,我需要編寫一個相當簡單的查詢,它連接兩個表並選擇一些數據。但是,我想將結果列表導出爲ex​​cel,因此最終用戶可以使用此.xls文檔查看結果並按字段之一(位置)篩選excel中的Oracle查詢輸出

當我編寫查詢時,是否存在一個簡單的方法,我可以生成/創建一個可以保存上述結果的Excel文檔? SQL不需要從excel內運行,但我想現在我認爲這將是一個有用的功能! 謝謝。

+0

你可以選擇一個答案嗎? – hmmftg 2012-08-19 11:52:36

回答

3

有您的要求簡單的解決方案。

通過使用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

乾杯

+0

如果我做了幾個query_to_sheet,以前的數據會被覆蓋,還是將來自下一個查詢的數據放在下一行? – SaintLike 2016-05-05 14:52:07

2

在Excel中很容易做到;完成後用戶可以右鍵單擊數據並說「刷新」以獲取最新更新。

但爲什麼推倒重來很多網上的文章已經介紹瞭如何做到這一點...這裏有一個

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

您連接到了表之後,就可以連接上編輯屬性並輸入自定義的SQL(複製並從開發者工具粘貼)

+0

不幸的是我被困在Excel 2003中。我想我應該可以使用sql開發者將結果導出到excel文檔中。 – GrumP 2012-08-03 13:17:36

2

快速路:

首先創建一個包含您的查詢(因爲你可能需要在以後更改此查詢的最佳方式)的圖。

一定要正確安裝oracle客戶端。

  • 在Excel(2007年及以上)的數據選項卡走這條路:

從其他來源 - >從數據連接嚮導 - > Microsoft數據訪問 - OLE DB提供程序的Oracle

  • 現在輸入您的數據源名稱(tnsnames.ora中存儲)和用戶密碼

  • 找到您查看,然後你就會有你需要的東西。

您可以保存密碼並設置選項以在連接屬性中自動刷新。

1

你可以做一件事。

  1. 首先以包含使用符號(如#或#)的列分隔符的形式生成輸出。
  2. 將數據導入到excel中,然後將佔位符定義爲列分隔符。
+0

我通常使用你的方法!因爲它在性能上更好。(Excel表更新速度慢!) – hmmftg 2012-08-04 18:00:47

+0

沒錯。這種方式快得多。 – 2012-08-06 05:25:43

2

由於您不能在您的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中默認打開。使用正確的列別名,以便用戶瞭解列標題。

+0

這個方法只是創建一個我真正的oracle查詢的.csv文件。 – GrumP 2012-08-07 09:38:13

+0

是的,您可以使用Excel查看'.csv'文件。 – Annjawn 2012-08-07 13:50:07

+0

是的,但該文件包含查詢本身;而不是查詢結果。 – GrumP 2012-08-07 13:58:41

1

您可以直接從Excel 2003查詢Oracle數據庫,但是,您的SQL語句由MS Query解釋,因此通常會令人沮喪。我將假定有問題的機器已經有能力查詢你的數據庫並且已經正確配置了數據庫的命名。

從Excel 2003,你必須查詢數據庫:

  1. 安裝和配置Oracle的ODBC驅動程序(您必須安裝32位的驅動程序,因爲excel03是32位應用程序)。 ODBC可以配置在開始>管理工具> ODBC數據源管理員

  2. 打開excel 2003並轉到數據>導入外部數據>新的數據庫查詢。

這應該調出MS Query這是一個類似於Access的界面。

很明顯,這是一個非常簡短的開端,讓你踏上正確的方向。如果您有任何具體問題,請發表評論,我會盡力幫助您。

+0

獲取此錯誤。 http://www.dba-oracle.com/t_ora_12560_tns_protocol_adapter_error.htm我可以從這臺機器上的sql開發人員訪問數據庫。所以試圖現在解決它。 – GrumP 2012-08-10 08:29:26

+0

我的SQL過於複雜,無法理解此方法 - (我通過編輯TNSNAMES修復了上述錯誤)連接成功,但Microsoft SQL工具不喜歡我的查詢。 – GrumP 2012-08-20 10:45:04