[英]Automatically extracting data - Oracle SQL Developer
我通過SQL Developer連接到Oracle數據庫,我想編寫一個查詢,該查詢返回每月的數據集,然后將該數據提取到定界的文本文件中。 我知道該怎么做就好,我想知道是否有一種方法可以編寫腳本來運行查詢並逐年提取一年的數據。 這樣,我將啟動腳本,每當腳本完成時,我將擁有12個文本文件,每個月一個。
我可以手動進行操作,但是其中包含大量數據,我希望它可以在一夜之間運行。 這樣做的原因是,如果我們不嘗試一次導入所有數據,將使用數據的應用程序將運行得更快。 我什至不知道是否可能,但是如果可以,有人可以向我指出正確的方向嗎?
提前致謝。
學習SQL * Plus,這是一個管理Oracle數據庫的功能非常強大的工具,如果您開始搜索如何將表中的數據提取到* .cvs文件中,您將立即發現例如此問題 。
如果您給我一個腳本來創建表格並填寫表格,我將向您展示如何從表格中提取數據的示例。
首先編寫您的參數化腳本:
define the_year=&1
define the_mon=&2
set lines etc
select * from the_table
where trunc(the_date , 'MM' ) = to_date ( '&the_year&the_mon', 'YYYYMM' )
spool extract_&the_year&the_mon.csv
/
spool off
然后是包裝腳本:
@the_script 2014 01
@the_script 2014 02
.
.
.
@the_script 2014 12
您可以變得很聰明,並生成包裝器:
sppol the_wrapper.sql
select '@the_script ' || to_char ( ADD_MONTHS ( trunc(sysdate,'YYYY' ), rn-1 ), 'YYYY MM' )
from ( select rownum rn from dual connect by level < 13 );
spool off
不要忘記設置選項以使生成的腳本可運行(例如,設置驗證關閉,設置反饋關閉等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.