日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Oracle導出文本文件的三種方法(spool,UTL_FILE,sqluldr2)

瀏覽:263日期:2023-05-30 16:13:48

一、常見的spool方法

二、UTL_FILE包方法

三、sqluldr2工具

為了構建導出文本文件,先做點準備工作

1、擴充表空間

ALTER TABLESPACE DAMS_DATA   ADD DATAFILE "C:\Oracle\oradata\orcl\DAMADATA2.DBF"  SIZE 500M AUTOEXTEND ON MAXSIZE 6000M; 

2、創建一張10萬記錄和50萬記錄的數據表

首先為了快速創建表數據用了CONNECT BY方法,再次為了把表存儲搞大,每個字段長度都是1000字節,一條記錄平均4000字節左右,數據庫的db_block_size=8192字節,由于block還包括其他信息,所以一個塊只能存儲一條記錄,10萬記錄大概在800M左右,50萬記錄為4G

CREATE TABLE record10w(id      INT,data1   CHAR(1000),data2   CHAR(1000),data3   CHAR(1000),data4   CHAR(1000));INSERT INTO record10wSELECT a.rn,       DBMS_RANDOM.STRING ("u", 5), --大寫字母隨機       DBMS_RANDOM.STRING ("l", 5), --小寫字母隨機       DBMS_RANDOM.STRING ("a", 5), --混合字母隨機       DBMS_RANDOM.STRING ("x", 5)  --字符串數字隨機     --DBMS_RANDOM.STRING ("p", 5) --鍵盤字符隨機  FROM (SELECT level,ROWNUM rn   FROM DUAL       CONNECT BY ROWNUM<=100000) a;--27 seconds       COMMIT;     CREATE TABLE record50w(id      INT,data1   CHAR(1000),data2   CHAR(1000),data3   CHAR(1000),data4   CHAR(1000));INSERT INTO record50wSELECT a.rn,       DBMS_RANDOM.STRING ("u", 5), --大寫字母隨機       DBMS_RANDOM.STRING ("l", 5), --小寫字母隨機       DBMS_RANDOM.STRING ("a", 5), --混合字母隨機       DBMS_RANDOM.STRING ("x", 5)  --字符串數字隨機     --DBMS_RANDOM.STRING ("p", 5) --鍵盤字符隨機  FROM (SELECT level,ROWNUM rn   FROM DUAL       CONNECT BY ROWNUM<=500000) a;--164 seconds       COMMIT; 

3、簡單做一下表分析

ANALYZE TABLE RECORD10W COMPUTE STATISTICS;  ANALYZE TABLE RECORD50W COMPUTE STATISTICS;  

4、查看一下表的統計信息

SELECT A.OWNER,A.TABLE_NAME,A.TABLESPACE_NAME,A.NUM_ROWS,A.BLOCKS,A.EMPTY_BLOCKS,A.AVG_ROW_LEN  FROM ALL_TABLES A  WHERE OWNER="METADATA"    AND TABLE_NAME IN ("RECORD10W","RECORD50W") 

方法一,spool方法

定義spool10w.sql用來導出record10w記錄

@C:\software\sqluldr2\spool10w.sql

SPOOL C:\software\sqluldr2\data\record10wspool.txt SET ECHO OFF  --不顯示腳本中正在執行的SQL語句SET FEEDBACK OFF --不顯示sql查詢或修改行數SET TERM OFF   --不在屏幕上顯示SET HEADING OFF  --不顯示列SET LINESIZE 1000; //設置行寬,根據需要設置,默認100select id||","||data1|| "," ||data2 FROM record10w;  --需要導出的數據查詢sqlSPOOL OFF

定義spool50w.sql用來導出record50w記錄

@C:\software\sqluldr2\spool50w.sql

SPOOL C:\software\sqluldr2\data\record10wspool.txt SET ECHO OFF  --不顯示腳本中正在執行的SQL語句SET FEEDBACK OFF --不顯示sql查詢或修改行數SET TERM OFF   --不在屏幕上顯示SET HEADING OFF  --不顯示列SET LINESIZE 1000; //設置行寬,根據需要設置,默認100select id||","||data1|| "," ||data2 FROM record50w;  --需要導出的數據查詢sqlSPOOL OFF

在Oracle Command窗口中執行命令

SQL> set time on;18:09:32 SQL> @C:\software\sqluldr2\spool10w.sqlStarted spooling to C:\software\sqluldr2\data\record10wspool.txt--20秒18:09:51 SQL> @C:\software\sqluldr2\spool50w.sql18:10:52 SQL> --1分1秒

補充

sqlplus / as sysdbaset linesize 1000set pagesize 0set echo offset termout offset heading offset feedback offSET trims ONset term offSET trimspool ONSET trimout ONspool "/archlog/exp/test.txt";select OWNER||" , "||SEGMENT_NAME||" , "||PARTITION_NAME||" , " from dba_segments where rownum<10000;spool off;/

方法二、UTL_FILE包

這個包很久之前用過,好像效率也不錯,在此不想嘗試了,有興趣的朋友可以試一下性能。

UTL_FILE.FOPEN打開文件

UTL_FILE.PUT_LINE寫入記錄

UTL_FILE.FCLOSE關閉文件

UTL_FILE.FOPEN第一個參數為文件路徑,不能直接指定絕對路徑,需要建立directory,然后指定我們建立的directory

sqlplus / as sysdba
create directory MY_DIR as ‘/home/oracle/’;
grant read,write on directory dir_dump to HR;##也可以直接建立一個public directory

CREATE OR REPLACE PROCEDURE test IStestjiao_handle UTL_FILE.file_type;BEGIN  test_handle := UTL_FILE.FOPEN("MY_DIR","test.txt","w");    FOR x IN (SELECT * FROM TESTJIAO) LOOP      UTL_FILE.PUT_LINE(test_handle,x.ID || "," || x.RQ ||",");    END LOOP;      UTL_FILE.FCLOSE(test_handle);EXCEPTION WHEN OTHERS THEN  DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,2000));END;/

方法三、sqluldr2

說實在的Oracle對大批量大規模數據的導出做的很不友好,大概是基于某種自信吧,spool的效率一般很低,很多開源ETL工具都是通過JDBC連接導出的,效率也好不到那里去

sqluldr2的作者是樓方鑫,Oracle的大牛,原來淘寶的大神,有過幾面之緣,是基于OCI底層接口開發的文本導出工具。

sqluldr2小巧方便,使用方法類似于Oracle自帶的exp,支持自定義SQL、本地和客戶端的導出,速度快,效率高。

sqluldr2有幾個版本,面向linux和windows的,有32位和64位的,可自行找鏈接下載。

c:\software\sqluldr2>sqluldr264SQL*UnLoader: Fast Oracle Text Unloader (GZIP, Parallel), Release 4.0.1(@) Copyright Lou Fangxin (AnySQL.net) 2004 - 2010, all rights reserved.License: Free for non-commercial useage, else 100 USD per server.Usage: SQLULDR2 keyword=value [,keyword=value,...]Valid Keywords:   user    = username/password@tnsname  #連接用戶/密碼@tns名稱   sql     = SQL file name      #指定SQL文件名   query   = select statement #指定SQL語句   field   = separator string between fields    #指定字段分隔符   record  = separator string between records   #指定記錄換行符   rows    = print progress for every given rows (default, 1000000)     #輸出導出記錄日志   file    = output file name(default: uldrdata.txt)    #導出數據文件名   log     = log file name, prefix with + to append mode#導出日志文件名   fast    = auto tuning the session level parameters(YES)      #快速導出參數   text    = output type (MYSQL, CSV, MYSQLINS, ORACLEINS, FORM, SEARCH).       #導出類型   charset = character set name of the target database. #設置目標數據庫字符集   ncharset= national character set name of the target database.   parfile = read command option from parameter file      for field and record, you can use "0x" to specify hex character code,  \r=0x0d \n=0x0a |=0x7c ,=0x2c, \t=0x09, :=0x3a, #=0x23, "=0x22 "=0x27

#設置查詢條件為select * from record50w,導出文件頭,導出文件名為record50wsqluldr2.csv,日志文件名為record50wsqluldr2.log,控制文件名為record50w_sqlldr.ctl

sqluldr264 metadata/XXXXXX@127.0.0.1:1521/orcl query="select id,data1,data2 from record50w" head=yes file=C:\software\sqluldr2\data\record50wsqluldr2.csv log=C:\software\sqluldr2\log\record50wsqluldr2.log table=record50w

sqluldr264 metadata/XXXXXX@127.0.0.1:1521/orcl query="select id,data1,data2 from record10w" head=yes file=C:\software\sqluldr2\data\record10wsqluldr2.csv log=C:\software\sqluldr2\log\record10wsqluldr2.log table=record10w

具體執行見下面:

c:\software\sqluldr2>time當前時間: 18:14:07.92c:\software\sqluldr2>sqluldr264 metadata/XXXXXX@127.0.0.1:1521/orcl query="select id,data1,data2 from record50w" head=yes file=C:\software\sqluldr2\data\record50wsqluldr2.csv log=C:\software\sqluldr2\log\record50wsqluldr2.log table=record50wc:\software\sqluldr2>time當前時間: 18:14:26.40 --19秒c:\software\sqluldr2>time當前時間: 18:14:36.83c:\software\sqluldr2>sqluldr264 metadata/XXXXXX@127.0.0.1:1521/orcl query="select id,data1,data2 from record10w" head=yes file=C:\software\sqluldr2\data\record10wsqluldr2.csv log=C:\software\sqluldr2\log\record10wsqluldr2.log table=record10wc:\software\sqluldr2>time當前時間: 18:14:43.05--7秒

總結:

總的來說,Spool比較簡單,但效率比較低

sqluldr2是基于OCI接口開發的,性能上最快

UTL_FILE,是Oracle自帶的包,可以測試一下

標簽: Oracle
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产九一精品| 欧美日韩国产高清| 国产在视频一区二区三区吞精| 日韩在线一二三区| 免费人成在线不卡| 国产午夜久久| 伊人影院久久| 伊人久久亚洲| 日本不卡高清| 国产精品久久久久久久久久妞妞| 国产精品密蕾丝视频下载| 国产精品免费大片| 97精品在线| 日韩在线观看一区| 一区免费视频| 男人的天堂久久精品| 亚洲最大av| 国产精品一区免费在线| 精品亚洲精品| 欧美日韩国产在线观看网站| 久久一二三区| 精品一区二区三区视频在线播放| 久久久久网站| 日本欧美韩国一区三区| 日韩一区电影| 亚洲麻豆一区| 日本在线高清| 欧美久久精品| 好看的av在线不卡观看| 国产欧美88| 亚洲天堂1区| 日韩精品第二页| 天堂中文在线播放| 亚洲精品一级| 欧美一级精品| 麻豆精品在线观看| 日韩欧美高清一区二区三区| 免费日韩成人| 六月婷婷一区| 欧美gv在线| 麻豆传媒一区二区三区| 美女精品在线| 91精品推荐| 精品国产乱码久久久| 亚洲一区二区三区在线免费| 国产一区国产二区国产三区| 美国欧美日韩国产在线播放| 中文一区一区三区高中清不卡免费| 亚洲精品国产精品粉嫩| 久久久男人天堂| 国产精品久久久久久久久久久久久久久 | 国产99精品一区| 国产一区二区三区天码| 国产欧美三级| 国产精品亚洲二区| 久久精品超碰| 国产精品最新| 里番精品3d一二三区| 日本欧美在线| 欧美日韩一区二区三区在线电影| 免费久久99精品国产自在现线| av在线最新| 夜鲁夜鲁夜鲁视频在线播放| av中文字幕在线观看第一页| 亚洲精品**中文毛片| 免费精品一区| 老司机精品视频在线播放| 欧美精品97| 精品一区二区三区的国产在线观看 | 99久久精品费精品国产| 中文字幕在线看片| 久久黄色影院| 午夜亚洲精品| 欧美一区二区三区久久精品| 国产精成人品2018| 精品国产黄a∨片高清在线| 日韩综合在线| 国产一区日韩一区| 久久av在线| 日韩高清在线不卡| 国产精品分类| 亚洲二区免费| 日本不卡高清视频| 国产成人久久| 99riav国产精品| 青青草国产精品亚洲专区无| 久久精品国产久精国产| 神马日本精品| 日韩国产一区二| 久久精品国产68国产精品亚洲| 久久国产精品毛片| 神马午夜在线视频| 蜜桃av一区| 麻豆国产一区| 免费视频亚洲| 国产精品久久久久久久久久白浆 | 日本亚洲三级在线| 国产激情欧美| 国产亚洲在线观看| 国产精品不卡| 亚洲精品乱码日韩| 亚洲www免费| 国产精品日本一区二区不卡视频 | 精品久久福利| 在线视频日韩| 国产一区二区三区久久| 蜜桃视频一区二区三区在线观看| 鲁鲁在线中文| 国产精品美女久久久久久不卡| 免播放器亚洲| 欧美在线资源| 麻豆国产在线| 狠狠久久伊人| 久久精品一区| 日韩精品一区二区三区av| 国内精品福利| 精品成人免费一区二区在线播放| 国产一区二区三区精品在线观看| 国产精品主播| 91麻豆精品激情在线观看最新| 国产精品美女久久久浪潮软件| av亚洲一区二区三区| 麻豆视频在线看| 裤袜国产欧美精品一区| 久久99久久久精品欧美| 国产精品一区二区三区四区在线观看| 蜜臀久久99精品久久久久久9| 99视频精品免费观看| 99re国产精品| 一区二区三区国产在线| 亚洲资源网站| 91免费精品国偷自产在线在线| 日韩欧美2区| 国产精品毛片久久久| 国产精东传媒成人av电影| 国产精品**亚洲精品| 另类欧美日韩国产在线| 国产欧洲在线| 精品亚洲a∨一区二区三区18| 婷婷综合电影| 热久久久久久| 99视频精品视频高清免费| 中文欧美日韩| 麻豆高清免费国产一区| 九九在线精品| 国产欧美日韩一级| 欧美日韩一二三四| 国产精品一在线观看| 欧美黄色网页| 亚洲精品福利| 欧美va天堂在线| 国产精品网站在线看| 欧美 日韩 国产精品免费观看| 国产乱码精品一区二区亚洲| 国产一区二区三区自拍| 国产一区福利| 亚洲狼人精品一区二区三区| 成人在线视频免费看| 国产毛片精品| 青草国产精品| 日韩一区二区三区在线看| 日韩成人综合| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 亚洲精品亚洲人成在线观看| av日韩中文| 国产精品探花在线观看| 91欧美精品| 国产日韩1区| 女人天堂亚洲aⅴ在线观看| 欧美一区91| 欧美天堂一区二区| 欧美日本一区| 日本免费新一区视频| 久久亚洲图片| 日韩亚洲在线| 蜜臀av免费一区二区三区| 欧美日韩 国产精品| 亚洲九九精品| 91av一区| 精品一区二区三区免费看| 国产不卡人人| 狠狠干综合网| 日韩精选在线| a国产在线视频| 久久激情五月激情| 蜜桃视频一区二区三区在线观看| sm久久捆绑调教精品一区| 欧美中文一区| 免费成人在线观看| 国产精品呻吟| 美女少妇全过程你懂的久久| 国产极品嫩模在线观看91精品| 日本亚洲不卡| 婷婷久久免费视频| 久久国产精品毛片| 91精品电影| 国产尤物精品| 午夜久久免费观看| 日韩视频一区| 日韩中文字幕91|