項目結(jié)束了,想把自己寫的存儲過程導(dǎo)出保存一份就寫了這么一個簡單的腳本,拿出來給大家共享一下。其實很簡單,主要用到user_procedures、user_source兩個視圖,大家一看就知道了。
好像網(wǎng)上搜到的一些都不夠全面,而且零零散散,如果覺得好的話就支持一下吧,'
#! /usr/bin/ksh
. ~/.profile
begintime=` date +%y年%m月%d日%h時%m分%s秒 `
bindir=~/work/common
prodir=~/work/common/procedure
#連接數(shù)據(jù)庫(帶參數(shù)-s)
ora_s()
{
~/cfg/dbetl_s
}
#連接數(shù)據(jù)庫(不帶參數(shù))
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
!
}
#導(dǎo)出存儲過程代碼
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秒 `"
新聞熱點
疑難解答
圖片精選