charset参数 sqluldr2_sqluldr2使用几例
sqluldr2是樓方鑫(d.b.c.a)編寫的一個快速導出oracle數據的工具。本文主要介紹如何使用這個工具實現工作中的幾個需求。
一、導出文件分卷
對于壓縮文件winrar,一個比較深的功能就是壓縮后的文件還是比較大時,不方便復制時,可以進行分卷壓縮,制定每個壓縮分卷文件的大小。同樣,對于使用Toad或者PL/SQL developer工具導成文件文件時,由于缺乏這個功能,常常造成單個文件過大,生成時間過長。
sqluldr2工具有一個rows參數,除了類似exp工具的feedback參數,每導出行數據,自動輸出一行提示信息外,還可以結合batch參數,如果batch參數設為yes,則每行數據生成一個導出文件。
此外size參數可以指定導出文件的最大的大小。它與rows參數 取更嚴厲的要求來確定分卷文件的大小。
由于按多個文件輸出,因此在指定輸出文件名時,需使用動態文件名,例如指定file參數為orders_%B.csv,其中%B表示在多個文件導出時,表示文件序號。
例如,sqluldr2.par定義為如下:
user=system/manager@dbserver
query=select?? /*+ parallel(8)? */? * from? orders
head=no
rows=1000000
file=d:\data\orders_%B.csv
log=d:\data\sqluldr.log
text=CSV
fast=yes
batch=yes
size=500
control=d:\data\order.ctl
mode=truncate
table=orders
執行起來:sqluldr2? parfile=./sqluldr2.par
二、ORACLE跨數據庫的導入導出
我們將數據導成文本,其最終目的還是要導入到其它數據庫。 導入其它ORACLE數據庫,最快的方法就是使用ORACLE自帶的sqlldr工具。
Sqlldr使用的控制文件,可以在第一部分中control、mode和table參數指定后,生成控制文件,可以修改這個文件以適合實際使用。
如果我們先把數據導成文本文件,再使用sqlldr導入到數據庫,由于涉及到磁盤的寫入讀取,可能在大數據量時影響速度。因此可以將sqluldr2的輸出到標準輸出設備(屏幕),而sqlldr從標準輸出設備上讀取入庫。
可以將sqluldr2的file參數設置為”-“, sqluldr2將輸出到標準輸出設備,修改sqlldr中的控制文件的INFILE參數為"-"(對于windows和unix參數),使用管道模式,進行數據導出裝載。
此外,由于源(sqluldr2導出的苦)和目標數據庫(sqlldr導入庫)的字符集不一樣(這也是我們之所以采用文本導出方式的原因),
我們可以在NLS_LANG環境變量和目標數據庫字符集一致的情況下,
設置sqluldr2的charset參數與源數據庫字符集一致,避免來回修改NLS_LANG環境變量。
舉例:
在sqlldr中的控制文件
指定INFILE參數:
LOAD
DATA
INFILE "-"
源數據庫字符集為US7ASCII,目標數據庫字符集ZHS16GBK,當前NLS_LANG為AMERICAN_AMERICA.ZHS16GBK
sqluldr2
user=system/manager@dbserver1
query="select?? /*+
parallel(8)? */ ??* from
orders where rownum <10" charset=US7ASCII?? ???file=- |
sqlldr guoge/guoge@dbserver 2control=D:\order.ctl
注意,的INFILE參數為"-"對于XE下的sqlldr仿佛無效。
三、MYSQL數據庫的導入
ORACLE數據也可以導入到MYSQL數據庫,sqluldr2的參數format指定為mysql,
輸出的則為MYSQL語句,可以直接執行。例如:
sqluldr2
comm/comm@dbserver? table=app_roles
format=mysql quote=0x27 escape=0x53 null=null
query=" select * from app_roles" file=- | mysql -h
21.103.117.51? -uroot -pqwxtpwd? test
四、導出后壓縮
sqluldr2其實可以在導出是就進行壓縮,文檔上說“當文件名(“FILE”選項)的后綴以小寫的“.gz”結尾時,會將記錄直接寫入到GZIP格式的壓縮文件中”,但仿佛對WINDOWS無效。其實我們可以結合組合命令。例如:
sqluldr2
parfile=./sqluldr2.par
&&? winrar a? -afrar
-ibck -m5?? -df??? -ep -r orders.rar d:\data
總結
以上是生活随笔為你收集整理的charset参数 sqluldr2_sqluldr2使用几例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 任意小数分频设计
- 下一篇: 详解单例模式线程安全