人生不设限

导航

oracle如何快速导入导出文本格式数据


导出
工具:sqluldr2
工具说明:sqluldr2再以安装oracle客户端的环境下下无需再安装其它软件,只需将对应的软件包拷贝至对应目录,即可运行导出数据
导出示例:
--linux环境导出示例:
/data/oracleloaddata/binluldr2_linux64_10204.bin USER=user/passwd@ip:port/sid charset=AL32UTF8 QUERY="select /*+ parallel(2) */ * from zxjs.TMP_SJXQ_EDUCATION_20161108" log=/data/oracleloaddata/loadout/TMP_SJXQ_EDUCATION/TMP_SJXQ_EDUCATION_20161108.log table=TMP_SJXQ_EDUCATION_20161108 head=yes FILE=/data/oracleloaddata/loadout/TMP_SJXQ_EDUCATION/TMP_SJXQ_EDUCATION_20161108.txt

--windows环境导出示例:
D:\huzhijuan\sqluldr264.exe USER=user/passwd@ip:port/sid QUERY="select /*+ parallel(2) */ * from zxjs.T_ORANGE_SCORE_V7" log=D:\huzhijuan\T_ORANGE_SCORE_V7_20161013.log table=T_ORANGE_SCORE_V7 head=yes FILE=D:\huzhijuan\T_ORANGE_SCORE_V7_20161013.txt
参数说明:
USER:数据连接串user/pwd@sid
charset:导出文件字符集设置
QUERY:导出语句设置
log:导出日志存放路径
table:指定导出表
FILE:指定导出文件路径

导入
工具:sqlldr
工具说明:sqlldr是oracle客户端自带工具,装好oracle客户端就可以使用
导入示例:
--no.1 查看要导入的表结构
create table TMP_SJXQ_EDUCATION_20161108
(
id VARCHAR2(200),
school VARCHAR2(200)
);
--no.2 编写ctl文件
vi input_EDUCATION.ctl
load data
CHARACTERSET AL32UTF8
infile "/home/oracle/tmp_for_mysqldata/cis_info_pnl_edu_verify_20161108.txt"
append into table TMP_SJXQ_EDUCATION_20161108
fields terminated by ","
OPTIONALLY ENCLOSED BY '"'
trailing nullcols
(
id integer external,
school integer external
)
--no.3 执行导出命令
sqlldr user/passwd@ip:port/sid control=/home/oracle/tmp_for_mysqldata/input_EDUCATION.ctl log=/home/oracle/tmp_for_mysqldatalldr-2016110801.log

工具介绍:
命令格式:
sqlldr username/password@sid control=*.ctl
*.ctl文件说明:
load data 告诉SQLLDR要做什么(在这个例子中,则指示要加载数据)。SQLLDR还可以执行CONTINUE_LOAD,也就是继续加载。只有在继续一个多表直接路径加载时才能使用后面这个选项
infile "d://test.txt" 外部数据文件,如果是*号,这会告诉SQLLDR所要加载的数据实际上包含在控制文件本身上,可以使用一个命令行参数覆盖这个INFILE语句。
命令行选项总会涵盖控制文件设置
infile "d://test1.txt" 可指定多个数据文件
append into table test 向表中追加数据
insert 向表中插入值,但要求表开始时为空,默认的加载选项
replace delete表中的数据,然后插入新值,记录多时速度慢
append 向表中追加数据
truncate trunctate表,然后插入新值,不能回退
fields terminated by "," 外部文件的数据以“,”分隔
OPTIONALLY ENCLOSED BY '"' 部分字段可以用双引号包起来
trailing nullcols 表中的字段没有对应的值时填充空值
(
id integer external, integer external 表示插入的数据是string,如果只保留integer,表示插入的数据是二进制
name "upper(:name)", 将插入的值转换为大写
con ":id||:name", 表中CON列的值是ID和NAME的组合值
dt date"yyyy-mm-dd" 插入日期型数据
)

 

posted on 2016-06-16 18:00  风的_理想  阅读(1324)  评论(0编辑  收藏  举报