Oracle 大数据量导入导出

1. 通过dmp 导入导出,这种情况一般需要注意用户的命名空间

2. 通过sqlldr实现

必要文件:ctl 控制文件、程序文件、导入导出命令

2.1.控制文件: 确定表结构、切分符号、导入

test.ctl

 Load data
 Characterset ZHS16GBK
 --truncate  表示插入前清空表
 Append  #表示插入的时候直接插入
 Into table test  #test 是要插入的表
 Fields terminated by X’7c’ #表示切割符,X表示16进制,7c 就是 |
 Trailing nullcos
 {
ID “trim{:ID}”,  #字段id
END_DT  DATE “yyyy-mm-dd”, # date 类型的数据
NAME “trim{:NAME}”
}

2.2.导出语句

sqluldr264.exe user=数据库名/数据库密码  query=”select id,end_dt,name from text” table=D:\test.ctl  head=yes file=D:\\result.txt

 上面的话是window 的,下面给个Linux的,将sqluldr2_linux64_10204.bin上传到oracle服务器的bin(/oracle/11.2.0/db_1/bin)目录下,并重命名为sqluldr2.bin

whereis oracle  --查看oracle可执行文件路径的命令
cd /oracle/11.2.0/db_1/bin  --根据上面获取到的路径
./sqluldr2.bin user=oracle/oracle#@192.168.0.1:1521/test query="select * from test.test;" 
head=yes file=/output/test.csv charset=ZHS16GBK safe=yes log=/output/export_csv.log

2.3.导入语句

sqlldr userid=数据库名/数据库密码 control=D:\test.ctl data=D:\\insert.txt log=D:\test.log bad=D:\test.bad errors=50000 bindsize=8000000 rows=5000 

Linux的有所变动,如下

sqlldr userid = oracle/oracle@192.168.0.1:1521/test control='/orctmp/test.ctl' log='/orctmp/import_csv.log'

2.4.注意

文件字符集要与Oracle服务等字符集一致,要不然会导致导入中文乱码

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值