基本命令:sqluldr2
2.导出实例
$sqluldr2 smart/smart query="select * from advice"
即sqluldr2 用户名/密码 query=”查询语句,查询语句一定在带分号
$sqluldr2 smart/[email protected]/ora16 query="select* from advice" field=0x7c file="export.txt"
导出数据到当前文件夹的export.txt,并且用”|”来分隔字段(注意|是特殊字符,要转义)
示例:$ sqluldr2 smart/[email protected]/ora16 query="select * from advice" field=0x7c table=control file="export.txt"
批量导出重名,batch=1为50W,batch=2为100W, %y%m%d%b依次对应动态文件年、月、日、批次。field=0x20,分隔符空隔,默认让文本对齐。Sqluldr4.0.0不支持%用法。
$/home/weblogic/oratools/sqluldr2.bin4.0.0smart/[email protected]/ora16 query='select ID,NAME,AGE,ADDRDSS,HIRE_DATE from MY_TEST' field=0x20NULL='\\N' charset=AL32UTF8 batch=2 file=A%y%m%d%b.txt
导出一千多万条数据测试性能,不到一分钟的时间:
$/home/weblogic/oratools/sqluldr2.bin4.0.0smart/[email protected]/ora16 query='select ID,NAME,AGE,ADDRDSS,HIRE_DATE from MY_TEST' field=0x7c NULL='\\N'charset=AL32UTF8 table=MY_TEST file=export.txt
Field 分隔符 指定字段分隔符,默认为逗号
record 分隔符 指定记录分隔符,默认为回车换行,Windows下的换行
quote 引号符 指定非数字字段前后的引号符
例如现在要改变默认的字段分隔符,用“#”来分隔记录,导出的命令如下所示:
sqluldr2 test/test sql=tmp.sqlfield=#
在指定分隔符时,可以用字符的ASCII代码(0xXX,大写的XX为16进制的ASCII码值)来指定一个字符,常用的字符的ASCII代码如下:
回车=0x0d,换行=0x0a,TAB键=0x09,|=0x7c,&=0x26,双引号=0x22,单引号=0x27
在选择分隔符时,一定不能选择会在字段值中出现的字符组合,如常见的单词等,很多次导入时报错,回过头来找原因时,都发现是因为分隔符出现在字段值中了。