哈喽,前几久,和大家分享过如何把文本数据快速导入数据库(点击即可打开),今天再和大家分享一个小技能,将Oracle数据库中的数据按照指定分割符、指定字段导出至文本文件。

首先来张图,看看导出的数据是什么样子。

用到的就是Oracle的spool命令,可以将数据库数据导出一个文本文件,而且也可以指定数据分隔符,其中!^是数据之间的分隔符。

首先和大家分享一下,我的这个脚本是怎么写的,其中写select时,需要导出那些字段,直接写在select里面就可以了,此外,我也是在select里面指定了分割符!^。虽然可以用参数来指定分隔符,但用起来并不友好,结束时,我会演示的。

set echo offset heading offset feedback offset termout onset trimspool offspool /home/oracle/Desktop/studentinfoSpool.dat --指定导出数据保存的文本文件select stuid||'!^'||stuname||'!^'||sex||'!^'||age from studentinfo; spool offexit

一个不超过10行的SQL脚本,设置四五个参数,一个select语句,就可以搞定导数这个问题,是不是,很简单。

接下来对几个常用的参数进行解释一下。

参数 作用
set echo off 显示start启动脚本中的每个sql命令,默认为on。比如select语句
set pagesize 0 设置每页的行数,默认为24,设置为0时为不用分页,一般需要分页
set termout off 在电脑屏幕显示脚本中的命令执行结果,默认为on。
set feedback off 显示本次sql命令处理的记录数,默认为on。
set heading off 输出域标题,默认为on
set trimspool off 去字段空格
set linesize 50 每行允许的最大字符数,设置大些,如果太小,数据库会报错或者数据自动换行,但如果设置过大,文件也会变大
set colsep ‘!^’; 用来设置分割符,但不建议使用是参数,建议   手动写分割符

执行sql脚本

sqlplus c##orcl/1234 @/home/oracle/Desktop/studentinfoSpool.sql

说明:c##orcl是用户名,1234是密码,@后面是我们写的sql脚本,里面就是刚刚演示的SQL脚本。因为是本地数据库,所以没有写地址和端口等。

spool命令就是这么简单,但也有几个需要注意的地方。

注意事项:

1、不建议使用colsep 设置分割符。

可以把手动设置分隔符和使用colsep设置的结果对比一下。

可以看到,使用colsep 设置分隔符的数据中间会出现很多空格,而手动设置的分隔符就很好。此外,如果最后一个字段后面也需要分割符,colsep 参数就无能为力。

2、合理设置linesize

linesize 设置如果不当,会出现很多问题,如果太小,数据库可能会错,数据自动换行。太大的话,数据文件也会更大。

有没有get到这个小技巧?get到的话一定要点一个“再看”!!!

☞ 推荐阅读 

1、文本数据可以这样导入数据库

2、凯利公式助你获得更多收益

3、苹果最近的股价有点......

4、crontab定时任务了解一下

5、此av非彼"AV"

“跟着菜鸟一起学R语言”转身变成“数据志”,不知道的也点一个“再看”呗!

oracle怎么设置sql每隔一段时间执行一次_Oracle大规模数据快速导出文本文件相关推荐

  1. Oracle大规模数据快速导出文本文件

    哈喽,前几久,和大家分享过如何把文本数据快速导入数据库(点击即可打开),今天再和大家分享一个小技能,将Oracle数据库中的数据按照指定分割符.指定字段导出至文本文件. 首先来张图,看看导出的数据是什 ...

  2. 总结以下三种方法,实现c#每隔一段时间执行代码:

    总结以下三种方法,实现c#每隔一段时间执行代码: 方法一:调用线程执行方法,在方法中实现死循环,每个循环Sleep设定时间: 方法二:使用System.Timers.Timer类: 方法三:使用Sys ...

  3. java每隔一段时间执行_8.Android中,每隔一段时间执行某一个任务(Timer)

    1,在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和 TimerTask. Tim ...

  4. 防抖与节流(鼠标移入事件每隔一段时间执行)

    废话不多说,直接怼代码 <template><div><button @click="show = !show">Toggle render&l ...

  5. JS每隔一段时间执行一个方法

    function funcTest(){ //每隔3秒执行一次timelyFun方法 window.setInterval("timelyFun()",3000); } windo ...

  6. js每隔一段时间执行方法

    方法一:每隔10秒执行一次 1 2 3 4 5 6 7 8 //申明一个全局变量存放间隔函数 var setIntervalFun = null; //每隔10秒钟执行一次setXSJYLTime() ...

  7. 每隔一段时间执行php_用php脚本,你如何定时更新商品列表

    电商项目中为了提高抗并发能力,需要对商品列表做缓存,以下是更新缓存用的脚本: //PRODUCTION_为缓存商品列表的临时key //PRODUCTION为缓存商品列表key $con = mysq ...

  8. NodeJS脚本中for循环中加入setTimeout实现每隔一段时间执行操作

    在nodejs中打算实现每隔5s就console一下信息,总共打印10次,于是想到了for循环加setTimeout来实现,可是写出来发现10次在五秒后全部打印出来了,于是开始想办法解决,直接上解决办 ...

  9. 每隔一段时间执行shell命令

    需求:每10秒钟打印一句话:"i am a superman". while true do echo "i am a superman" sleep 10 d ...

最新文章

  1. cms是什么意思啊_GC 知识点补充——CMS
  2. 高德地图-轨迹回放(二)
  3. Office文档模型深入---Outlook文档模型与开发实战(1)
  4. python调用adb shell命令_Python之使用adb shell命令启动应用的方法详解
  5. java if else重构_java – 如何重构这个有多个if / else语句的方法
  6. Android模糊查询excel文件内容,【excel】模糊查询关键字
  7. 皮卡堂 game.php,《皮卡堂》官方网站 | 过家家,玩生活!年度最可爱社区游戏,女生最爱玩!...
  8. Android点击图片随机,android 设置图片随机出现-两种方式
  9. 【人生】比未知更可怕的是预知---献给那些毕业季的童鞋
  10. BZOJ4570: [Scoi2016]妖怪
  11. 【BZOJ】3576: [Hnoi2014]江南乐
  12. C++对象模型——指向Data Members的指针(Pointer to Data Members)
  13. project安装包_Microsoft project 2019软件功能介绍(附安装包)
  14. 线性表的定义和基本操作
  15. killer queen ctf
  16. goldendict词典安装配置
  17. java代码比较数据_比对两个数据库的差异:Java篇
  18. ubuntu20.04关闭内核自动更新
  19. Android经典项目案例开发实战宝典
  20. brew对redis的使用

热门文章

  1. 进程和线程的一些见解
  2. Ubuntu 14.04 python3.6 安装
  3. eq,neq,gt,lt等表达式缩写
  4. XtraBackup做mysql主从同步
  5. 良好编程习惯的重要性
  6. Eclipse+CDT+MinGW搭建C++环境 (转)
  7. 研究发现,脸谱网和谷歌在流媒体上有广告跟踪器
  8. 甲骨文正式发布Java 14(Oracle JDK 14)
  9. 人脸识别入侵生活,但“刷脸”背后你的信息安全吗?
  10. 以色列研发出0经验AI,无需训练就能学会抠图