Spool緩衝池技術匯出Oracle資料為文字檔

來源:互聯網
上載者:User

利用Oracle中的Spool緩衝池技術可以實現Oracle資料匯出到文字檔。

1、在Oracle PL/SQL中輸入緩衝開始命令,並指定輸出的檔案名稱:

 spool d:/output.txt

 

2、

  set heading off                        --去掉欄位名

  set time off   echo off   head off     --此行設定不計算時間     不顯示sql語句   不每隔幾行現一下列名  

  set pagesize 0                         --去掉沒格幾行就顯示一下的空行或多餘的空格  

  set trims on                           --去掉全部空格,預設長度不夠填充空格    

  set feedback off                       --不顯示選擇行數   不能和上一行和在一起  

3、在命令列中隨便輸入你的SQL查詢:

 select mobile from customer;

 select mobile from client;

 ……

3、在命令列中輸入緩衝結果命令:

 spool off;

 

 則系統將緩衝池中的結果都輸出到"output.txt"檔案中,以TAB鍵分隔!

-----------------------------------------------------------------

ksh:

runlog=p_divide_001.log

nohup sqlplus " datatrans/hw@szdb1"<<!>/dev/null 2>&1 &

set serveroutput on

set timing on

set time on

spool $runlog

set autocommit on;

exec P_DIVIDE_INDEX_new(755,'CM_SUBS_SERVICE','SUBSID','P_DEL_DOUBLE_OPEN');

commit;   

spool off

!

 

或者:

  sqlplus -s $v_dest_tns_user/$v_dest_tns_pswd@$v_dest_tns_db <<  EOF | grep "DATA.VALUE" | while read s1 s2

    set linesize 512 pagesize 512 head off

    select 'DATA.VALUE' "FIELDNAME",

           decode(data_type,'DATE',      column_name||' date ''yyyy-mm-dd hh24:mi:ss'' '||

                                           decode(column_id,$v_max_column_id, '',','),

                            'VARCHAR2',  column_name||' char('||to_char(data_length)||')'||

                                           decode(column_id,$v_max_column_id, '',','),

                            column_name||  decode(column_id,$v_max_column_id, '',','))

    from all_tab_columns

    where owner=upper('$v_dest_tns_user') and table_name=upper('$v_table_name')

    order by column_id;

EOF

  do

    echo $s2 >> ./$v_datafile_name.ctl

  done

 

----------------

sqlplus -s  datatrans/hw@szdb1 <<EOF >sql.log

   set linesize 1024 pagesize 512 head off

   select * from dt_region;

EOF

 

 

SQL> set echo on         --設定運行命令是是否顯示語句

SQL> set feedback on         --設定顯示“已選擇XX行”

SQL> set colsep |          --設定列與列之間的分割符號

SQL> set pagesize 10         --設定每一頁的行數

SQL> set serveroutput on --設定允許顯示輸出類似dbms_output

SQL> set heading on         --設定顯示列名

SQL> set timing on         --設定顯示“經過時間:XXXX”

SQL> set time on         --設定顯示目前時間

SQL> set autotrace on         --設定允許對執行的sql進行分析

 

set verify off                  --可以關閉和開啟提示確認資訊old 1和new 1的顯示.

set colsep ''                   --域輸出分隔字元

set linesize 4000                   --輸出一行字元個數,預設為80

set pagesize 0                   --輸出每頁行數,預設為24,為了避免分頁,可設定為0。

set num 16(或者set numwidth 16)        --輸出number類型域長度,預設為10

set trimspool on                 --去除重新導向(spool)輸出每行的拖尾空格,預設為off

set heading off                  --輸出域標題,預設為on

set feedback off                 --回顯本次sql命令處理的記錄條數,預設為on

set termout off;                 --顯示指令碼中的命令的執行結果,預設為on

set timing off;                 --顯示每條sql命令的耗時,預設為off

set trimout on;                 --去除標準輸出每行的拖尾空格,預設為off

set echo off                    --顯示start啟動的指令碼中的每個sql命令,預設為on

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.