oracle导入大数据到数据库表,解决办法
最近项目中用到需向某个表插入数据,业务方提供的是excel,做法是:用excel写好sql,点击下拉,让生成一条一条insert.目前这批数据比较多有10W多。
若在plsql中一条一条执行,会累死并效率低。
解决办法:
第一种:用begin insert1,insert2 ... end;插入,这种个人感觉效率还行,每次选1W多条,40多S.
第二种:用导入txt文档。简单核心命令如下:效率高,10W多W,总共用4分钟。
(1)把待执行的txt sql上传到数据库服务器机器上,
(2)上传完后,根据oracle 编码,设置编码格式,如我的oracle编码为utf-8,
则在导入前执行:export NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8'
export LANG="en_US.UTF-8"
(3)通过oracle命令管理员账号登录
(4)登陆后执行
spool /test/oracle/my.log 声明一个日志
(5)执行脚本
@/test/oracle/脚本.sql
(6)执行完后,查看日志是否报错,若没报错
cat /test/oracle/my.log |grep ERR
cat /test/oracle/my.log |grep ORA
(7)若没问题 commit
(8)spool off
(9)exit退出登陆