首页 > 数据库 > Oracle > 正文

导出oracle数据库存储过程

2024-08-29 13:31:42
字体:
来源:转载
供稿:网友

项目结束了,想把自己写的存储过程导出保存一份就写了这么一个简单的脚本,拿出来给大家共享一下。其实很简单,主要用到user_procedures、user_source两个视图,大家一看就知道了。

好像网上搜到的一些都不够全面,而且零零散散,如果觉得好的话就支持一下吧,'

#! /usr/bin/ksh
. ~/.profile

begintime=` date +%y年%m月%d日%h时%m分%s秒 `


bindir=~/work/common
prodir=~/work/common/procedure

#连接数据库(带参数-s)
ora_s()
{
~/cfg/dbetl_s
}

 

#连接数据库(不带参数)
ora()
{
~/cfg/dbetl
}

 

#获得存储过程名称
getprocedurename()
{
ora_s <<! >${bindir}/procedure.lst

set heading off;
set feedback off;
set pagesize 0 ;
set wrap off;
set echo off;
set term off;
set linesize 1000;
set trimspool on;

select object_name from user_procedures;

exit
!

}

#导出存储过程代码
exportproceduresource()
{
ora_s <<!   >${prodir}/${procedure_name}.sql

set serveroutput on;
set heading off;
set feedback off;
set pagesize 0 ;
set wrap off;
set echo off;
set term off;
set linesize 1000;
set trimspool on;

select text from user_source a where a.name = '${procedure_name}' order by a.line;

exit
!

}


#####################        mian         ##########################

getprocedurename

mkdir prodir

while read procedure_name
do

    exportproceduresource

done<${bindir}/procedure.lst

 


echo "begin at ${begintime}"
echo "end   at ` date +%y年%m月%d日%h时%m分%s秒 `"


 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表