sqlplus shell导出脚本

本文介绍了一种在Linux环境下批量导出Oracle数据库中特定表数据的方法。通过编写shell脚本,实现对tb_a和tb_b两张表的数据按日期进行导出,并将数据保存为指定格式的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建tb_a.sql文件

select id,name from tb_a;


创建tb_b.sql文件

select id,name from tb_b;


创建tb_a.sh
yest定义昨天的时间,yyyymmdd

#!/bin/sh
yest=`date +%D | awk -F/ '{s=$2-1}{printf"20%02d%02d%02d\n", $3,$1,s}'`
echo "sqlpath:$sqlpath/tb_a.sql,exporting:$Dir/tb_a$yest.dat"
sqlplus -S /nolog > log.log <<EOF
conn gdmcp/gdmcp
set verify off;
set wrap off;
set echo off;
set term off;
set heading off;
set feedback off;
set pagesize 0;
set linesize 1000;
set trimspool on;
spool $Dir/tb_a$yest.dat;
@$sqlpath/tb_a.sql;
spool off;
exit;
EOF


创建tb_b.sh

#!/bin/sh
yest=`date +%D | awk -F/ '{s=$2-1}{printf"20%02d%02d%02d\n", $3,$1,s}'`
echo "sqlpath:$sqlpath/tb_b.sql,exporting:$Dir/tb_b$yest.dat"
sqlplus -S /nolog > log.log <<EOF
conn gdmcp/gdmcp
set verify off;
set wrap off;
set echo off;
set term off;
set heading off;
set feedback off;
set pagesize 0;
set linesize 1000;
set trimspool on;
spool $Dir/tb_b$yest.dat;
@$sqlpath/tb_b.sql;
spool off;
exit;
EOF


创建export.sh

#!/bin/sh
Dir="/oracle/zhangjh/data";
export Dir;
sqlpath="/oracle/zhangjh";
export sqlpath;

./tb_a.sh
echo "导出A表信息完毕 日全量"
./tb_b.sh
echo "导出B表信息完毕 日全量"


必须在linux里安装了oracle客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值