實(shí)例講解一個(gè)shell處理db2數(shù)據(jù)庫(kù)的程序
#SQL文定義SQL='SELECT AAA, BBB, CCC FROM MYTBL1'#執(zhí)行SQLSDATA=`db2 '$SQL'`#返回值判斷if [ $? -ne 0 ]then#顯示db2返回的錯(cuò)誤信息echo '$SDATA'exit 1fi#對(duì)取得的數(shù)據(jù)進(jìn)行處理。echo '$SDATA' | sed -e '4,/^$/!d;/^$/d' |while read AAA BBB CCCdo echo 'AAA IS $AAA, BBB IS $BBB, CCC IS $CCC'done#取得數(shù)據(jù)件數(shù)echo '$SDATA' | sed -n -e '/^$/{1,3d;n;s/[^0-9]*([0-9]*)[^0-9]*/1/;p;}' | read CNTecho 'The count of selected data is $CNT.'exit 0
◆更新db2的數(shù)據(jù),并取得更新結(jié)果
SQL='UPDATE MYTBL1 SET AAA='2005',BBB='05',CCC='12''#執(zhí)行SQLSDATA=`db2 -a '$SQL'`#取得SQLCODEecho '$SDATA' | sed -n -e 's/^.*sqlcode: ([-,0-9][0-9]*).*/1/p' | read SQLCODEecho 'Sqlcode is $SQLCODE.'#取得SQLSTATEecho '$SDATA' | sed -n -e 's/^.*sqlstate: ([-,0-9][0-9]*).*/1/p' | read SQLSTATEecho 'Sqlstate is $SQLSTATE.'#取得更新件數(shù)(即sqlerrd的第三個(gè)值)echo '$SDATA' | sed -n -e '/sqlerrd/s/^.*(3) ([-,0-9][0-9]*).*/1/p' | read UPDCNTecho 'Updated data's count is $UPDCNT.'#取得sqlerrd的第五個(gè)值echo '$SDATA' | sed -n -e '/sqlerrd/{n;s/^.*(5) ([-,0-9][0-9]*).*/1/;p;}' | read SQLERRD5echo 'Sqlerrd(5) is $SQLERRD5.'
