spool使用脚本封装
2008-04-01 16:28
162 查看
oracle的spool工具可以将数据导出为文本格式,有很强的功能和实用性,如果能灵活应用,能带来很多好处和便捷。
下面是我写的两个示例脚本,使用着可以直接拷贝使用,如有更好的改进,请补充。
在unix/linux下,vi sqlexport.sh,下面是 sqlexport.sh的文件内容:
#!/bin/sh
if [ $# -ne 3 ]; then
echo "usage:$0 user/passwd@dbstr sqlfile exportfile";
exit 1;
fi
dbstr=$1;
sqlfile=$2;
outfile=$3;
echo $dbstr;
sqlplus $dbstr<<EOF
set pages 9999
set heading off
set echo off
set feedback off
@$sqlfile
exit;
EOF
mv out.txt $outfile
编写sql模版
template.sql
下面是文件内容:
set termout off
set echo off
set feedback off
set heading off
set verify off
--pagesize 0用来去除空行
set pagesize 0
set trimspool on
spool out.txt
select 'analyze table ' || owner || '.' || table_name ||
' estimate statistics sample 5000 rows;'
from dba_tables
where owner in ('DEV');
select
'analyze index '||owner||'.'||index_name||' compute statistics;'
from dba_indexes
where owner in ('DEV');
spool off
使用者可以替换template.sql里面的sql语句,就可以导出自己想要的数据了。
然后执行命令./sqlexport.sh dev/chenli@testdb tables.sql 2.txt
打开2.txt就是自己想要的参数导出数据了
脚本sqlexport.sh有三个参数,第一个参数是sqlplus登录数据库的命令串,如user/passwd@dbstr格式,第二个参数就是sql文件名,第三个参数是导出文件名,使用的时候只要按照template的样式,修改其中的查询sql语句就可以了。
提供另外一个例子,内容如下:
#! /usr/bin/sh
DAY=`date "+%Y%m%d"`
BILLING_CYCLE=`date "+%Y%m"`
out_file=''
dest_file=''
#第一个参数是帐期yyyymm
if [ $# -eq 1 ]
then
BILLING_CYCLE=$1
fi
out_file="Bill_NUMBER_TO_ACCESS_NUMBER_"$BILLING_CYCLE.txt
dest_file="Bill_NUMBER_TO_ACCESS_NUMBER_"$BILLING_CYCLE
sqlplus [url=mailto:bboss/bboss@cfcs1a<
下面是我写的两个示例脚本,使用着可以直接拷贝使用,如有更好的改进,请补充。
在unix/linux下,vi sqlexport.sh,下面是 sqlexport.sh的文件内容:
#!/bin/sh
if [ $# -ne 3 ]; then
echo "usage:$0 user/passwd@dbstr sqlfile exportfile";
exit 1;
fi
dbstr=$1;
sqlfile=$2;
outfile=$3;
echo $dbstr;
sqlplus $dbstr<<EOF
set pages 9999
set heading off
set echo off
set feedback off
@$sqlfile
exit;
EOF
mv out.txt $outfile
编写sql模版
template.sql
下面是文件内容:
set termout off
set echo off
set feedback off
set heading off
set verify off
--pagesize 0用来去除空行
set pagesize 0
set trimspool on
spool out.txt
select 'analyze table ' || owner || '.' || table_name ||
' estimate statistics sample 5000 rows;'
from dba_tables
where owner in ('DEV');
select
'analyze index '||owner||'.'||index_name||' compute statistics;'
from dba_indexes
where owner in ('DEV');
spool off
使用者可以替换template.sql里面的sql语句,就可以导出自己想要的数据了。
然后执行命令./sqlexport.sh dev/chenli@testdb tables.sql 2.txt
打开2.txt就是自己想要的参数导出数据了
脚本sqlexport.sh有三个参数,第一个参数是sqlplus登录数据库的命令串,如user/passwd@dbstr格式,第二个参数就是sql文件名,第三个参数是导出文件名,使用的时候只要按照template的样式,修改其中的查询sql语句就可以了。
提供另外一个例子,内容如下:
#! /usr/bin/sh
DAY=`date "+%Y%m%d"`
BILLING_CYCLE=`date "+%Y%m"`
out_file=''
dest_file=''
#第一个参数是帐期yyyymm
if [ $# -eq 1 ]
then
BILLING_CYCLE=$1
fi
out_file="Bill_NUMBER_TO_ACCESS_NUMBER_"$BILLING_CYCLE.txt
dest_file="Bill_NUMBER_TO_ACCESS_NUMBER_"$BILLING_CYCLE
sqlplus [url=mailto:bboss/bboss@cfcs1a<
相关文章推荐
- (转)robotium脚本封装为APK,实现脱离手机数据线,使用按钮点击控制用例运行
- 将Unity的脚本封装为dll文件(使用monodevelop编译器)
- Oracle使用spool方式导出SQL脚本
- 将Unity的脚本封装为dll文件(使用monodevelop编译器)
- 使用JQuery封装的Select&Checkbox&Radio脚本
- SpringCloud 微服务简介及搭建(本文使用Spring封装后的API,实现负载均衡的功能)
- 使用Python脚本批量裁切栅格
- vue封装可以使用v-model的input输入框
- hibernate API在业务层的封装和使用
- 如何使用Docker构建运行时间较长的脚本
- python selenium的使用、文件下载、登录跳转问题和简单封装
- Oracle数据库之使用sqlplus执行sql脚本乱码解决办法
- shell脚本无密码登录 expect使用
- 把对数据库的增删改查封装到类中,方便以后的使用。
- 生成命令行程序使用脚本
- Python使用CGIHTTPServer调用shell作为cgi脚本
- 实用技巧:使用 jQuery 异步加载 JavaScript 脚本
- 使用测速脚本对国内 Linux 服务器进行测速
- 使用Lua脚本为wireshark编写自定义通信协议解析器插件
- 如何使用WebBrowser控件执行页面的JavaScript脚本,WebBrowser执行JavaScript脚本