oracle 查询数据的结果集导出
1.需求说明
查询特定表(含条件),并把其结果集(一千多万的数据)进行导出。
2.使用技术就是spool,代码如下:
spool /user/result.txtselect phone from t_mt where state_true='0';spool off
其中/user/result.txt 为结果集的输出文件。
3.因为需求要循环查询,就创建.sh文件,以test.sh为例,执行:vi test.sh
复制下列代码到test.sh中。
#!/bin/sh
export ORACLE_BASE=/user/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=qxt
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
#oracle字符集
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8#----脚本链接数据库----------------------
#数据库地址
db_ip=127.0.0.1
db_port=1521
db_sid=qxt
db_username=user01
db_password=121212
db_oracle_name="${db_username}/${db_password}@${db_ip}:${db_port}/${db_sid}"# 日志输出路径
logOutPath=/user/mt_data/mt.log
# 开始时间
mydate="20200701"
echo 'mydate:'$mydate
for((j=0; j<31; j++))
do# 日期加一天DATE=$(date -d "$j days ${mydate}" +%Y%m%d)echo $(date "+%Y-%m-%d %H:%M:%S")" start date:"$DATE >> ${logOutPath}
loc2=`sqlplus -s ${db_oracle_name} << !set pages 0 feed off heading off feedback off verify off linesize 1000 trimspool on term offspool /user/mt_data/t_mt_phone_${DATE}.txtselect phone from t_mt_${DATE} where state_true='0';spool offexit;
exit
!`
echo $(date "+%Y-%m-%d %H:%M:%S")" end date:"$DATE >> ${logOutPath}
doneecho $(date "+%Y-%m-%d %H:%M:%S")" 完成 "
说明:
db_ip:oracle数据库的ip
db_port:oracle数据库的端口号
db_sid:oracle数据库sid
db_username:oracle数据库的账号
db_password:oracle数据库的密码
spool常用的设置:
set head off:输出域标题,缺省为on
set linesize 20000:linesize可以设置的大点,防止一行长度不够
set echo off:显示sqlplus中的每个sql命令本身,缺省为on
set feedback off:回显本次sql命令处理的记录条数,缺省为on
set pagesize 0:输出每页行数,缺省为24,为了避免分页,可设定为0
set termout off:显示脚本中的命令的执行结果,缺省为on
set trimout on:去除标准输出每行的拖尾空格,缺省为off
set trimspool on:去除重定向(spool)输出每行的拖尾空格,缺省为off
4.授权执行:chmod +x test.sh
5.执行 : test.sh文件
oracle 查询数据的结果集导出相关推荐
- Oracle查询数据表数据很少却很慢
Oracle查询数据表数据很少却很慢(查询空表很很耗时) 有一个表的数据我要去看一下到底数据是什么样子的,所以我就 select * from tableName 这个表.但是执行了90多秒后,没有任 ...
- oracle查询数据令某字段显示固定值
oracle查询数据令某字段显示固定值 select t.tname 表名称, '固定值' as C from tab t; 注意: C字段 必须是tab表中没有的字段 mysql查询数据令某字段显示 ...
- linux连接oracle的日志,linux shell脚本连接oracle查询数据插入文件和日志文件中
#!/bin/sh sqlplus "用户名/密码@数据库"< sqlplus "用户名/密码"< sqlplus -S "用户名/密码& ...
- VB.NET通过OleDbConnection连接oracle查询数据示例
一.前言 1.目的 本文实现了VB.Net通过OleDbConnection连接oracle查询数据,并展示数据到TextBox1. 2.数据库版本 select * from v$version; ...
- 用两种不同的方法导出ORACLE 查询数据为CSV 文件 (python 代码 与 使用 utl_file 包)
因要对客户发送一些推广邮件,需要把email导出到csv,再使用专门邮件发送软件进行发送. 在使用ORACLE 的 utl_file 包,把数据写到文件中. 看到是逐条数据写入文件.速度比较慢.所以想 ...
- oracle查询数据泵状态,PLSQL_数据泵导入进度查看Impdp/Expdp Status(案例)
使用前提 EXPDP和IMPDP只可以在Oracle服务端使用. EXP导出的文件只可以使用IMP导入,不适用于IMPDP导入文件:EXPDP导出的文件只可以使用IMPDP导入,而不适用于IMP导出文 ...
- oracle分区表分区导出,Oracle分区表数据的导入与导出
Oracle分区表的使用在一定程度上提高了对表数据的存储及处理性能,在查询性能和数据存储安全上体现了其特有的优势,因此很好的利用分区表,在一定程度上有利于数据库性能的优化.而Oracle分区表数据的导 ...
- 分区表需要数据备份吗oracle,Oracle 分区表数据的导入与导出(1)
--**************************** -- 导入导出 Oracle 分区表数据 --**************************** 导入导入Oracle 分区表数据是 ...
- oracle数据泵导入分区表,Oracle 10g 数据泵分区表的导出
Oracle 10g中数据泵支持本地导出/导入分区表的分区,但是NET_LINK不支持分区表的分区.以下为导出部分实验,导入与导出相识. 本地导出: C:\Users\xionglang>exp ...
最新文章
- 判断文件或文件夹(目录)是否存在 C/C++ win/linux通用
- EasyTransaction 1.3.0 发布,一站式分布式事务解决方案
- Django admin coercing to Unicode: need string or buffer, tuple found
- Pytorch+CNN+猫狗分类实战
- Unity3D之主菜单
- LeetCode算法题4:二分查找及扩展应用
- canvas绘制正文形并填充-2
- java cordova_java – Cordova android后台插件在5分钟后被杀死
- c++中STL的常用算法---2(遍历算法,查找算法)
- 预告:Intel、Hulu、阿里、京东、携程等大数据实战直播
- viewController详解
- 互联网项目架构经验分享
- [约瑟夫环]n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始... ...
- 读取json本地js处理输出html,JavaScript 通过浏览器导出和读取本地 JSON 文件
- matlab textscan 分块读取,【转】matlab的textscan与textread区别
- rop检查_【国际高影响力文章红毯秀7月】白内障扩瞳安全性、ROP筛查新标准、45mmHg眼内灌注压...
- java ppt 绘图,PPT图片别再直接插入,这样处理一下,让你的PPT秒变高逼格
- php+mysql系统网站,PHP+MYSQL 网址导航系统开源 网站分类目录管理系统
- 火焰特性识别的Matlab实现方法
- 核心期刊《中国兽医学报》
热门文章
- 启航——我的第一篇博客
- python time localtime()
- throw 和 throws 的区别
- Java学习星球,Java学习路线
- Connected to the target VM,address: ,transport: ‘socket‘
- PHP 7.1 新特性一览 1
- Android简易计算器的制作
- 管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程
- 21秋期末考试个人与团队管理10257k2
- 给你们讲个笑话——低代码会取代程序员