日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

charset参数 sqluldr2_sqluldr2 学习心得

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 charset参数 sqluldr2_sqluldr2 学习心得 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

最近正在做一個項目,需要導出數據庫中的表,但是數據庫中有很多帶有虛擬列的表,而且表中的數據非常的龐大,有些表中的數據上億條,項目經理讓我研究如何快速導出這些數據。

下面是我研究的一些經歷:

(1)、我先使用plsql developer導出dmp(實際上是通過emp導出),但是不能導出帶有虛擬列的表,導出的速度有點慢;

(2)、使用plsql developer自帶的導出功能,如圖所示:

該方法可以導出虛擬列,但是導出的速度很慢,比dmp還慢,大約是方法(1)的2倍時間。

(3)、使用數據泵? DataPump導出,該方法可以導出虛擬列,而且速度還可以,但是如果導出遠程庫數據的時候,需要用dblink,而且需要很高的權限(相當于dba的權限),所以該方法也被排除。

山重水復疑無路,柳暗花明又一村,我發現了sqluldr2這個神器,又能導出虛擬列,而且導入導出的速度非常快,下面我們就進入正題。

sqluldr2下載與安裝

1、軟件下載地址:

百度云鏈接:https://pan.baidu.com/s/1V8eqyyYsbJqQSD-Sn-RQGg

提取碼:6mdn

下載完后并解壓會生成4個文件

sqluldr2.exe? 用于32位windows平臺;

sqluldr2_linux32_10204.bin? 適用于linux32位操作系統;

sqluldr2_linux64_10204.bin? 適用于linux64位操作系統;

sqluldr264.exe?? ??????????用于64位windows平臺。

2、直接在cmd上運行(我的sqluldr文件放在H盤里,我電腦是64位,所以使用sqluldr264)

首先,你必須安裝oracle,沒有安裝oracle,sqluldr2不能運行,運行完后出現如下的界面,這樣就證明可以成功運行。

sqluldr2 導出

1、導出命令的主要參數

user=用戶名/密碼@ip地址:1521/服務 ??,如果是本地庫,可以只寫 用戶名和密碼:eg:user=用戶名/密碼

query=”sql查詢語句”

head=yes|no? 是否導出表頭

file=文件存放路徑(該文件可以寫很多后綴: .txt? .csv?? .dmp 等等,我發現,導出.dmp文件速度快)

table=查詢的表名 有這句話,sqluldr2會自動生成一個.ctl文件,導入的時候會用到();

Field:分隔符,指定字段分隔符,默認為逗號; 比如:field=#? 在選擇分隔符時,一定不能選擇會在字段值中出現的字符組合,如常見的單詞等,很多次導入時報錯,回過頭來找原因時,都發現是因為分隔符出現在字段值中了。

record:分隔符,指定記錄分隔符,默認為回車換行,Windows下的換行;

quote:引號符,指定非數字字段前后的引號符;

charset:字符集,執行導出時的字符集,一般有UTF8、GBK等;

2、常規的命令

sqluldr264 user=zxx/zxx123@127.0.0.1:1521/orcl query="select * from mv_xlsymx1 where ysyddm='00001H'" ?head=yes file=h:\mx.csv? log=+h:\tem.log

3、可以使用sql參數

可以使用sql參數代替query

sqluldr264 user=zxx/zxx??sql=h:\test.sql head=yes file=h:\mx.csv

test.sql是提前維護好的一個文件,文件的內容為sql語句。

4、帶有table參數的導出

sqluldr264 user=zxx/zxx query="select * from mv_xlsymx1 where ysyddm='00001H'" table=mv_xlsymx1? head=yes file=h:\mx.csv

它會生成一個.ctl文件(mv_xlsymx1_sqlldr.ctl,默認生成在sqluldr文件下,我的就生成在h:\sqluldr\ mv_xlsymx1_sqlldr.ctl)

5、指定.ctl文件生成的位置

sqluldr264 user=zxx/zxx? query="select * from mv_xlsymx1 where ysyddm='00001H'" table=mv_xlsymx1? control=h:\mx.ctl head=yes file=h:\mx.csv

6、帶有日志log參數

當集成sqluldr2在腳本中時,就希望屏蔽上不輸出這些信息,但又希望這些信息能保留,這時可以用“LOG”選項來指定日志文件名。

sqluldr264 user=zxx/zxx query="select * from mv_xlsymx1 where ysyddm='00001H'" ?head=yes file=h:\mx.csv? log=+h:\tmp.log

注意:這里的log路徑要寫上“+”

sqlldr 導入

1、我們先查看sqlldr的幫助文檔

2、導入之前,我們需要先熟悉一下.ctl文件

characterset :字符集, 一般使用字符集 AL32UTF8,如果出現中文字符集亂碼時,改成 ZHS16GBK。

fields terminated by 'string':文本列分隔符。當為tab鍵時,改成'\t',或者 X'09';空格分隔符 whitespace,換行分隔符 '\n' 或者 X'0A';回車分隔符 '\r' 或者 X'0D';默認為'\t'。

optionally enclosed by 'char':字段包括符。當為 ' ' 時,不把字段包括在任何引號符號中;當為 "'" 時,字段包括在單引號中;當為'"'時,字段在包括雙引號中;默認不使用引用符。

fields escaped by 'char':轉義字符,默認為'\'。

trailing nullcols:表字段沒有對應的值時,允許為空。

append into table "T_USER_CTRL"? -- 操作類型

-- 1) insert into???? --為缺省方式,在數據裝載開始時要求表為空

-- 2) append into? --在表中追加新記錄

-- 3) replace into ?--刪除舊記錄(相當于delete from table 語句),替換成新裝載的記錄

-- 4) truncate ?into? --刪除舊記錄(相當于 truncate table 語句),替換成新裝載的記錄skip=1 :表示插入數據時,跳過第一行(標題),從第二行開始導入;

3、sqluldr 導入處理

3.1、基本的導入語句

sqlldr userid=hxj/hxj control=h:\sqluldr\mv_xlsymx1_sqlldr.ctl data=h:\mx.csv rows=1000

如果是本地庫,可以直接只用 用戶名/密碼;

如果是遠程庫,需要將userid寫全? ??userid=用戶名/密碼@ip:1521/服務名

比如:userid=zxx/zxx123@10.3.36.110:1521/orcl,填寫自己遠程庫地址

3.2、帶有日志log參數

sqlldr userid=hxj/hxj control=h:\sqluldr\mv_xlsymx1_sqlldr.ctl data=h:\mx.csv log=h:\log\mx.log? rows=1000

注意:這里的log的路徑不能寫“+”;

4、虛擬列處理

sqluldr2導出數據的時候,如果該表中含有虛擬列,你導出的時候沒有過濾掉虛擬列,比如:select * from 帶有虛擬列的表,那么你要對這些虛擬列進行處理,否則導入的時候回報錯。

我發現了三種處理方法:

4.1、在虛擬列后面加上filler,將這一列過濾掉。

4.2、將.ctl文件中的虛擬列刪除掉就可以了

4.3、在導出的時候,不導出虛擬列

比如,不寫select * from 表名

直接將不是虛擬列的列名寫出來 select id,name from 表名

5、使用并行處理

5.1 未使用并行處理

sqlldr userid=hxj/hxj control=h:\ctl\qsddlqymx1_cyqs.ctl data=h:\qsddlqymx1_cyqs.dmp log=h:\log\qsddlqymx1_cyqs.log

1567258條數據大概需要 一分半

5.2、使用并行處理數據

需要在導入語句中加入??direct=true?? parallel=true,如下所示:

sqlldr userid=hxj/hxj control=h:\ctl\qsddlqymx1_cyqs.ctl data=h:\qsddlqymx1_cyqs.dmp log=h:\log\qsddlqymx1_cyqs.log direct=true?? parallel=true

并行能更快的導入數據,1567258條數據大概20秒,但是有缺點(我測試的時候發現的,可能有別的解決方法)

(1):首先.ctl文件必須是append into table 表名;

(2):需要導入的表不能有索引。

這是我寫的第一篇博客,望看客老爺們多多指教。

總結

以上是生活随笔為你收集整理的charset参数 sqluldr2_sqluldr2 学习心得的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 毛片久久久久久久 | 欧美第一精品 | 超碰公开在线观看 | 免费观看在线高清 | 成人av免费在线播放 | 久久久久久久女国产乱让韩 | 日韩无遮挡 | 亚洲精华国产精华精华液网站 | 黄色网免费 | 欧美一区二区三区爽爽爽 | 午夜a级片 | 国产精品19p| 亚洲黄色免费在线观看 | 欧美性成人 | 欧美日韩 一区二区三区 | 成人免费在线视频网站 | 狠狠亚洲| 欧美又粗又深又猛又爽啪啪九色 | 成人一区二区精品 | 国产精品国产三级国产aⅴ原创 | 亚洲国产综合av | 神马影院一区二区三区 | 婷婷亚洲五月色综合 | 三级视频网址 | 日本在线小视频 | 女优一区二区三区 | 制服丝袜手机在线 | 精品一区二区三区电影 | 一级黄色毛毛片 | 日本一区二区三区四区视频 | 国产精品v欧美精品v日韩 | 亚洲精品中文字幕在线观看 | 日本免费一区二区三区 | 亚洲精品日本 | 国产av一区二区三区最新精品 | 一区二区三区色 | 亚洲天堂五月天 | 18日本xxxxxxxxx95| 久草免费资源 | 一级视频在线观看 | 色欲AV无码精品一区二区久久 | 一区二区三区av在线 | 毛茸茸亚洲孕妇孕交片 | 久久久久久18 | 日韩网红少妇无码视频香港 | 日本色区| 国产精品久久久一区 | 亚洲精品免费在线 | 亚洲AV无码精品色毛片浪潮 | 91色国产 | 欧美一区二区免费在线观看 | 北条麻妃在线一区二区 | www日本xxx| 在办公室被c到呻吟的动态图 | 国模无码一区二区三区 | 亚洲精品免费在线播放 | 午夜视频在线观看网站 | 成年人在线观看网站 | av导航在线观看 | 影视av| 国产欧美一区二区精品性色99 | 国产精品久久久久久久午夜 | 99在线视频免费 | 国产精品高潮呻吟久久av黑人 | 国产精品黄 | 无码人妻精品一区二区三区温州 | 黄色资源在线播放 | 男生尿隔着内裤呲出来视频 | 夜夜噜噜噜 | 国产一区久久 | 久色视频在线 | 欧美另类自拍 | 插我一区二区在线观看 | 国产富婆一区二区三区 | 国产成人啪精品午夜在线观看 | 亚洲免费观看在线 | 日操干 | 欧美日韩不卡一区二区 | 伊人av影院 | 香蕉网站在线 | 亚洲三级图片 | 台湾男男gay做爽爽的视频 | 国产真人做爰视频免费 | 老司机成人在线 | 国产男女视频在线观看 | 男女插插视频 | 97精品人妻麻豆一区二区 | 99日精品| 亚洲视频1| 久久精品国产精品 | 91九色视频在线观看 | 日韩操操 | 三级视频网 | 欧美××××黑人××性爽 | 一区二区 中文字幕 | 91偷拍视频 | 小情侣高清国产在线播放 | 青青草国产一区二区三区 | 久久这里只有精品首页 |