oracle 自动导出package/package body/procedure 等为sql文件并且自动上传到ftp服务器上

有的时候对于研发或者其他非DBA的人员来说是没有权限登陆到数据库上的,但有的时候研发需要调试一些存储过程或者包等,又常常需要登陆到服务器上去查看,那么再这种情况下,可以通过dba_source或者all_source 将需要的procedure 、pakckage、body等导出成文本形式并且上传到ftp服务器上供相关人员查看。下面就是实现这个功能的脚本:

-rw-r--r-- 1 oracle dba       439 Nov 14 11:25 dump_package_body.sh
drwxr-xr-x 2 oracle oinstall 4096 Nov 14 13:06 package_body
-rw-r--r-- 1 oracle dba        25 Nov 14 11:14 package_body_info.sql
-rw-r--r-- 1 oracle oinstall  316 Nov 14 13:16 unload_to_ftp.sh

上面就是用到的几个脚本,其中

package_body_info.sql存放的是需要导出的procedue,body等

unload_to_ftp.sh 是将导出的文件放到ftp上面去

cat  unload_to_ftp.sh 

#!/bin/bash

#read package body information
package_body_info=($(awk '{print $1}' package_body_info.sql))
for var in  ${package_body_info[@]};
do
sqlplus -S xxxx/xxxx@xxxx<<EOF
set heading off;
spool  /opt/scripts/package_body/$var.sql
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select  text  from dba_source where owner='xxxx' and type='PACKAGE BODY' and name='$var' order by line;
spool off;
exit;
EOF
done

./unload_to_ftp.sh
cat unload_to_ftp.sh 


#!/bin/bash
updir=/opt/scripts/package_body

ftp -v -n ftpip <<EOF
user ftpuser ftppasswod
binary
cd /opt/xxx/ftp/dump_package_body/  
lcd /opt/scripts/package_body
prompt
put  *
bye
EOF
echo "commit to ftp successfully"

实现方式很简单!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨花石~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值