对于数据量比较大的项目首选的数据库一般是Oracle,正是因为数据量比较大,所以有的时候需要转移数据的时候就更加的复杂。这篇文章我根据自己的经验,从把Oracle的数据导出到txt文件,在导入到数据全面介绍怎样快速的导入导出数据。

首先说这里我们的数据库的用户名和密码都是oracle,这个用户下存在一张用户的表(user),对应的有两个字段,分别是uname和uid。

对于导出数据,使用的是spool方法,下面是脚本,名字是spool.sh

#!/bin/sh

if [ $# -ne 2 ]; then

echo "usage:$0 sqlfile outfile";

exit 1;

fi

sqlfile=$1;

outfile=$2;

sqlplus oracle/oracle << EOF

spool $outfile

set pages 9999

set heading off

set echo off

set feedback off

@$sqlfile

spool off

exit

!

如果我们要导出user表中的数据,我们需要建立一个导出的文件,如user.sql,这里我是用的是"^"作为分隔符,这个可以根据自己的喜好进行选择,一般这样分隔符不会出现在字段的内容那个里就行。

set termout off

set echo off

set feedback off

set linesize 5000

set colsep "^"

set heading off

set verify off

set pagesize 0

set trimout on

set trimspool on

select uname||'^'||uid from user;

下一步就是执行命令,首先需要spool.sh这文件要具有当前用户的执行的权限,对于Linux来说,赋予文件的执行权限一般是使用chmod,一般我会使用

chmod 777 spool.sh

这样这个用户就具有了执行这个文件的权限,我这种方式属于简单粗暴的方式,我们也可以更详细的给这个文件赋予不同的权限。然后执行如下的命令就可以导出数据了,因为是比较简单的命令所以我就不多说

nohup ./spool.sh user.sql /home/user.txt >> user.log &

执行问以后你可以"ps -ef|grep sql"确定当前的命令确实在执行中,当导出完成后事自动的退出。

下面说一说怎样导入数据,先要准备两个文件分别是user.lst.crl和user.lst.shell,对应的内容如下

user.lst.crl:说明一下,如果我们是想要完全的覆盖表中的数据的时候,可以把"append"换成"replace",是否使用"trim"也是根据情况定的

load data infile '/home/user.txt'

append into table user

fields terminated by '^'

(

uname "trim(:uname)",

uid

)

user.lst.shell:这个的“sed '1,5d'”是删除文件的1到5行,"error"是在我们碰到多少条异常的情况后会停止执行导入数据的操作

sed '1,5d' /home/user.txt

sqlldr oracle/oracle control=/home/user.lst.crl errors=10000 log=/home/user.lst.log

同样的user.lst.shell需要在当前的用户下,该用户具有可执行的权限,然后执行

nohup ./user.lst.shell & 就行了,同样的道理,你可以"ps"一下确定当前的任务是否在正常的执行,或者看一下日志也行。

oracle导出数据只能9999,批量快速的导入导出Oracle的数据相关推荐

  1. java shell spool_批量快速的导入导出Oracle的数据(spool缓冲池、java实现)

    1. Java代码实现思路 BufferedWriter writefile = new BufferedWriter(new FileWriter(file)); writefile.write(& ...

  2. Oracle 数据泵(IMPDP/EXPDP)导入导出总结

    Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常运维的数据库对象少则几千,多则几万甚至几十万,所以传统exp ...

  3. 《oracle每日一练》oralce数据库的导入导出

    今天尝试了数据库的导出,直接在命令行里面使用了导出指令: exp uname/pwd@127.0.0.1:1521/orcl  file='xx.dmp' 出现的问题: 直接@tnsnames里面配的 ...

  4. 如何用java完成Excel快速的导入导出

    日常工作中,Excel是我们经常需要处理的文件,报表的生成,数据的导出,几乎每个项目都需要写对应的处理.作者也是编写这块代码大军的一员,能否有方法让我们不用重复编写代码呢,能否只要简单配置就可以完成我 ...

  5. mysql中数据表如何关联_mysql 如何导入/导出2个关联表中的数据

    mysql 怎么导入/导出2个关联表中的数据 表一 id student 1 S1 2 S2 表二 id sid scord order 1 1 100 1 2 1 60 2 3 1 80 3 4 2 ...

  6. 面试题-批量向MySQL导入1000万条数据有什么方法?

    批量向MySQL导入数据 直接导入 使用存储过程循环拼接 使用load data infile 修改ENGINE=InnoDB为MyISAM(v5.1之前是MyISAM,之后是InnoDB) 减少IO ...

  7. php mysql导出csv文件_详解PHP导入导出CSV文件

    我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. CREATE TABLE `student` ( ...

  8. postgis 导出 栅格_postgis常见的空间数据的导入导出

    本片文章简单记录了postgis涉及的常用数据导入导出的使用方法. 1.将osm数据导入postgis osm2pgsql -c -d osm -l -E 4326 -S /usr/share/osm ...

  9. 解决mysql导数据时,格式不对、导入慢、丢数据的问题

    如果希望一劳永逸的解决慢的问题,不妨把你的mysql升级到mysql8.0吧,mysql8.0默认的字符集已经从latin1改为utf8mb4,因此现在UTF8的速度要快得多,在特定查询时速度提高了1 ...

  10. com.alibaba.easyexcel导出指定的列_使用Python导入导出Excel表格

    这篇文章的目的是讲解使用python导入导出Excel表格,目前还不涉及数据处理,主要实现为数据的展示. 第一步,准备材料 python3.8的安装包 一个Excel表格 第二步,安装软件 pytho ...

最新文章

  1. 防止重复提交订单-(转)
  2. 接口(interface)
  3. Eclipse-常用插件
  4. 柚子的小小笔记本-Linux中的简单运算
  5. 《大道至简》第一章java伪代码分析
  6. LeetCode 500. Keyboard Row
  7. (day 49 - 另起数组牺牲空间换取时间 ) 剑指 Offer 66. 构建乘积数组
  8. 化学能推进永远无法实现外星旅行
  9. 小票打印机安装配置全过程 58mm热敏票据打印机驱动安装
  10. 大数据经典案例与谬误
  11. YunCharging充电桩系统开源源码,配套设备+小程序直接商用落地
  12. 微信公众号之自定义菜单
  13. 在页面添加天气预报显示
  14. 在html5页面中添加canvas,HTML页面中添加Canvas标签示例
  15. X线DR医学图像 --- DR医用滤线栅及摩尔纹详解 (五) 消除摩尔纹
  16. 海康威视网络摄像头购买指南(焦距像素等参数)
  17. Java8 lambda表达式,Comparator.comparing().thenComparing()报错
  18. 长程蓝牙温湿度及光照度传感器 , 带四通道开关及指示灯(集成太阳能微能量采集功能)
  19. python框架pika的基本使用
  20. 【转载】CSS3之Clip(裁剪)拓展阅读

热门文章

  1. 2022新版小额借贷系统源码+新增APP下载页面/内附教程
  2. 东软 c语言笔试题,C语言笔试题及参考答案东软集团
  3. 宋宝华Linux培训笔记-Linux系统开发与工具
  4. Navicat For Mysql软件注册机破解
  5. Python 100例
  6. 用HTML+CSS做一个漂亮简单的个人网页
  7. python之词频统计
  8. python播放音乐同步歌词_Python点阵字玩转动态歌词
  9. 8个SVG动画JavaScript库
  10. 51 单片机AD采集电压值的坑