我在Oracle數據庫中有一個表。我必須從Oracle表創建一個複雜的電子表格結構。我正在尋找實現這一目標的最佳方法。我可以使用SSIS或使用一些Oracle實用程序來創建電子表格。從Oracle數據庫創建Excel電子表格
任何幫助將不勝感激。
在此先感謝。
問候 的DIB
我在Oracle數據庫中有一個表。我必須從Oracle表創建一個複雜的電子表格結構。我正在尋找實現這一目標的最佳方法。我可以使用SSIS或使用一些Oracle實用程序來創建電子表格。從Oracle數據庫創建Excel電子表格
任何幫助將不勝感激。
在此先感謝。
問候 的DIB
的第一件事,我會嘗試是剛剛傾倒我想CSV值。 Excel應該能夠導入,這很好,而且手動操作Excel公式等操作比試圖自動化它更容易。如果您使用Oracle SQLDeveloper,則可以選擇將結果導出到CSV。如果您使用SQL * Plus,那麼您可以使用set colsep ,
使Oracle使用逗號來分隔列。不過,如果你使用SQL * Plus,你可能會想要進行更多的格式調整。
存在稱爲.RDLC(報告定義語言客戶端)的SSRS報告描述的「斷開」版本。這是屬於SSRS一部分的RDL的子集。有Excel和PDF格式的出口商內置了報表查看器控件。查看器控件可用於Windows窗體和Web窗體。這些報告的數據源是通用的數據集或數據對象是不可知的數據源(SQL,甲骨文,...狼煙..)
http://www.highoncoding.com/Articles/339_Creating_Charts_Using_Aspnet_ReportViewer_Control.aspx
http://msdn.microsoft.com/en-us/library/ms251771%28VS.80%29.aspx
我想的問題是,你的「複雜結構」有多複雜?
編程IDE(如Oracle SQL Developer或Quest TOAD)具有將數據表導出爲CSV文件的嚮導。
如果你想加入多個表中的數據,你可以使用一個視圖,甚至可以編寫SQL語句
select e.ename||','||d.dname
from emp e
join dept d on (e.deptno = d.deptno)
/
(rembering該列可以經常包含的數據,其中包括逗號,所以你可能需要使用一個更不尋常的字符 - 或一組字符 - 作爲分隔符)。
另一種快速的方法是使用SQL * Plus的HTML報告功能。許多電子表格工具可以導入結構良好的HTML和XML而不需要搶奪。 Find out more.
如果你想扁平化一個層次結構或更加複雜的東西,你可能需要進入PL/SQL。手卷的方法將使用上述聲明擬合一個變體使用UTL_FILE:
declare
csv_fh utl_file.filetype;
begin
csv_fh := utl_file.fopen('C:\temp', 'data_export.csv', 'W');
for r in ( select e.ename, d.dname
from emp e
join dept d on (e.deptno = d.deptno)
) loop
utl_file.put_line(csv_fh, r.ename||'|'||r.dname;
end loop;
utl_file.fclose(csv_fh);
end;
如果你想明確導出到Excel(即.xls文件),那麼你就需要超越甲骨文建-INS。從PL/SQL直接導出到Excel的通常解決方案是Tom Kyte的SYLK api的OWA_SYLK包裝器。 Find out more.
這適用於單個工作表。如果您想要導出到多個工作表,則有一些替代解決方案。
Sanjeev Sapre有他的get_xl_xml包。顧名思義,它使用XML來進行轉換。 Find out more。
傑森貝內特寫,其生成一個Excel XML文檔PL/SQL對象。 Find out more。
您可以使用ORA_EXCEL包來創建複雜的結構Excel文檔。 ORA_EXCEL具有基本但強大的組件,您可以使用它來構建複雜的Excel文件。
Check功能列表中:http://www.oraexcel.com/documentation
組LINESIZE 4000頁大小0 COLSEP '' 集標題關閉上trimout trimspool上
線軸C:/file.xls
SELECT * FROM TABLENAME ;
假脫機;
這會在c盤中產生你的file.xls。你可以給任何地址,如果你想要列標題,然後刪除「標題關閉」條款,並將pagesize設置爲某個數值。
+1,謝謝你的所有鏈接。 – DCookie 2011-05-16 14:28:14