oracle資料庫資料備份成文字的指令碼

wangzh3發表於2005-08-25

sybase和sql server有bcp in/bcp out,是個很好的工具,可以把資料以文字格式匯入匯出。而oracle只有一個文字匯入工具,是sqlldr。其他的就是二進位制的了,比如imp/exp,以至於10g裡面的expdp.

今天突然需要匯出文字。本來想寫一個,覺得麻煩,打電話給套子,套子幫我找到的,這個是老鬼在2002年在北京的時候寫的。在此一併謝了套子和老鬼,^_^。

[@more@]

#/usr/bin/sh

if [ $# -lt 2 -o $# -gt 3 ]
then
echo "error ,usage $0 tablename outfilename condition"
exit 1
fi

TABL=$1
OutFile=$2
Conditon=$3

STR="noting"
FILEDS=`echo "desc $TABL" | sqlplus -s zhjs/zhjs|tail +3|grep "[A-Z,a-z]"|awk '{print $1}' `
for i in $FILEDS
do
if [ "$STR" = "noting" ]
then
STR="$i "
else
STR="$STR || ';' || $i"
fi
done
if [ $# -eq 3 ]
then
STR="select $STR from $TABL $Conditon;"
else
STR="select $STR from $TABL;"

fi
#echo $STR
echo "set feedback offnset pagesize 0nset linesize 2000n$STRnexit"| sqlplus -s settle/settle > $OutFile

可以根據實際需要修改一下即可。很簡單明瞭,使用起來也很方便。

特地記在這裡,免得忘記了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/47869/viewspace-805116/,如需轉載,請註明出處,否則將追究法律責任。

相關文章