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

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

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

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

a4e20d491474e69c73e62df4965aebda.png

用到的就是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设置的结果对比一下。

90e23d7424dc2eb2e52bed5dbc013dbf.png

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

2、合理设置linesize 

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

8a748250442f78310ca7057397bc4bc9.png

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

☞ 推荐阅读 

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

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

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

4、crontab定时任务了解一下

5、此av非彼"AV"

d26faff0ff5ce940f94124a614cbbd84.png

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

知秋君
上一篇 2024-09-02 15:36
下一篇 2024-09-02 15:02

相关推荐