資源描述:
《多個Oracle數(shù)據(jù)庫創(chuàng)建一個Excel報表》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、多個Oracle數(shù)據(jù)庫創(chuàng)建一個Excel報表文章出處:設(shè)計前沿收集作者:未知 發(fā)布時間:2006-09-03關(guān)鍵詞:多個Oracle數(shù)據(jù)庫創(chuàng)建一個Excel報表微軟的Excel電子表格廣泛應(yīng)用于當今的商業(yè)環(huán)境中。盡管Excel能夠讀取和顯示分隔文件,但.xls專有格式提供了其他一些富于表現(xiàn)力的特性,其中包括字體格式和多工作表電子表格。許多商業(yè)和開放源代碼的工具都提供了生成可由Excel讀取的報表的功能。比如,您可以使用OracleReports生成一個電子表格,或使用SQL*Plus輸出一個由逗號分
2、隔的文件。利用現(xiàn)有的一些工具可以訪問多個數(shù)據(jù)源。但報表的格式與特定查詢的結(jié)果緊密聯(lián)系,而不同的數(shù)據(jù)源有時會生成不同的結(jié)果。(比如,對兩個不同數(shù)據(jù)庫中的表進行SELECT*FROMemp查詢,返回來的列的數(shù)量和類型將必然不同。)出于各種各樣的原因,您可能要訪問幾個不同的數(shù)據(jù)源,然后在一個電子表格中整理返回的結(jié)果:數(shù)據(jù)庫管理員可能希望比較不同數(shù)據(jù)庫的配置。應(yīng)用開發(fā)人員可能需要檢查不同數(shù)據(jù)庫中PL/SQL對象的版本。在數(shù)據(jù)庫間移植數(shù)據(jù)時,數(shù)據(jù)庫管理員可能需要估計作業(yè)的進度。程序員使用測試數(shù)據(jù)庫調(diào)試應(yīng)用程序
3、時,可能需要將當前數(shù)據(jù)與生產(chǎn)環(huán)境中的數(shù)據(jù)進行比較。根據(jù)數(shù)據(jù)庫的不同結(jié)構(gòu)和用途,可能還有其它原因促使您想要生成此類電子表格,但所有原因都依賴于數(shù)據(jù)庫的功能要求和定義。本文將說明如何使用ApacheJakartaPOI開放源代碼項目從幾個不同數(shù)據(jù)源生成一個電子表格。工作簿中的每一個工作表將顯示從某個給定Oracle數(shù)據(jù)庫返回的結(jié)果。在當前項目中您要達到的要求是:運行該軟件創(chuàng)建一個包含從一個或多個Oracle數(shù)據(jù)庫獲得的數(shù)據(jù)的電子表格。用戶將定義一個隨意SQL查詢,然后由各個配置的數(shù)據(jù)庫處理該查詢。用戶將
4、定義一個或多個數(shù)據(jù)庫連接。生成一個配置文件,其中包括您定義的數(shù)據(jù)連接和SQL查詢。該配置文件的格式為XML格式。將生成一個工作表顯示每個數(shù)據(jù)庫返回的結(jié)果。將依據(jù)服務(wù)器名稱和Oracle系統(tǒng)標識符(又稱為OracleSID)命名每個工作表。電子表格將以粗體顯示列標題(基于數(shù)據(jù)庫列)。該軟件將用Java編寫。將使用JDBC訪問數(shù)據(jù)庫。將使用JakartaPOI生成電子表格。您可以為生產(chǎn)系統(tǒng)添加許多要求。很明顯,上面的列表中遺漏了口令加密方面的內(nèi)容。雖然現(xiàn)在已經(jīng)能夠處理SQL數(shù)據(jù)類型,但是一個更健全的解決
5、方案還應(yīng)該能夠處理一些特殊的數(shù)據(jù)類型,如BLOB(二進制大對象)、CLOB(字符大對象)和LONG。目前只能調(diào)用一個XML配置文件和一個腳本來設(shè)置環(huán)境和執(zhí)行Java類,還未提供易于使用的圖形界面。由于只執(zhí)行一個查詢,因此必須保證該SQL查詢無語法錯誤,并基于每個數(shù)據(jù)庫的對象返回一個結(jié)果集。且記錄的內(nèi)容非常少。盡管如此,如果程序達到了上面的要求,那么該程序還是相對容易使用的,并且它能夠快速生成包含許多數(shù)據(jù)庫數(shù)據(jù)的文檔。如果需要,還可以使用Excel編輯該文檔的格式。因為將多個數(shù)據(jù)源的數(shù)據(jù)納入了一個電子
6、表格中,所以我們可以很方便對從各數(shù)據(jù)庫提取的數(shù)據(jù)進行比較了。此外,您使用的主要機制即POI應(yīng)用程序編程接口(API)調(diào)用清晰可辨,而不會被構(gòu)建一個功能齊備的解決方案所需的其他代碼和資源所淹沒。測試和要求本文所生成的軟件是在安裝有Java運行時環(huán)境(JRE)1.4.2、運行Windows2000系統(tǒng)的PC機上編寫和測試完成的。(要了解JRE1.5相關(guān)的問題,參見邊欄)Java的設(shè)計初衷就是實現(xiàn)平臺無關(guān)性,所以在任何安裝有適當JRE的機器上都應(yīng)該能正常運行。使用該版本的JRE,您無需訪問其他外部API(
7、如Xerces和Xalan)就能利用XML處理。初始配置如果系統(tǒng)中有幾種JRE,那么必須確保正確設(shè)置PATH環(huán)境變量,以調(diào)用1.4.2或更新版本的JRE,而非老版本的JRE??稍趈ava.sun.com/j2se/1.4.2/docs/api中獲取JRE1.4.2版的Javadoc文檔。該軟件下載中包含的批處理文件中的信息已經(jīng)進行過更改,可用于Linux環(huán)境,而且這些信息已經(jīng)在RedHatLinux上測試通過。只是對run.sh進行了適當?shù)男薷?,并沒有更改并執(zhí)行run.bat。在Linux環(huán)境中,可
8、使用OpenOffice.org的電子表格程序來顯示電子表格。環(huán)境設(shè)置基本上就是兩個環(huán)境變量的設(shè)置:PATH和CLASSPATH。首先要正確設(shè)置CLASSPATH,以利用提供數(shù)據(jù)庫訪問和Excel電子表格功能的API。使用run.bat文件設(shè)置這一變量,這樣就可以訪問相應(yīng)的Java文檔(.jar文件)。您可能需要將指向classes12.jar(其中包含OracleJDBC驅(qū)動)的路徑更改您系統(tǒng)上的正確路徑。在安裝許多不同的Oracle產(chǎn)品時都將自動安裝該文件。如果您