正在看的db2教程是:用shell抽取,更新db2的数据。为工作需要而写的shell处理db2数据库的程序用shell抽取db2的数据,并进行处理。
#sql文定义
sql="select aaa, bbb, ccc from mytbl1"
#执行sql
sdata=`db2 "$sql"`
#返回值判断
if [ $? -ne 0 ]
then
#显示db2返回的错误信息
echo "$sdata"
exit 1
fi
#对取得的数据进行处理。
echo "$sdata" | sed -e '4,/^$/!d;/^$/d' |
while read aaa bbb ccc
do
echo "aaa is $aaa, bbb is $bbb, ccc is $ccc"
done
#取得数据件数
echo "$sdata" | sed -n -e '/^$/{1,3d;n;s/[^0-9]*\([0-9]*\)[^0-9]*/\1/;p;}' | read cnt
echo "the count of selected data is $cnt."
exit 0★更新db2的数据,并取得更新结果
sql="update mytbl1 set aaa='2005',bbb='05',ccc='12'"
#执行sql
sdata=`db2 -a "$sql"`
#取得sqlcode
echo "$sdata" | sed -n -e 's/^.*sqlcode: \([-,0-9][0-9]*\).*/\1/p' | read sqlcode
echo "sqlcode is $sqlcode."
#取得sqlstate
echo "$sdata" | sed -n -e 's/^.*sqlstate: \([-,0-9][0-9]*\).*/\1/p' | read sqlstate
echo "sqlstate is $sqlstate."
#取得更新件数(即sqlerrd的第三个值)
echo "$sdata" | sed -n -e '/sqlerrd/s/^.*(3) \([-,0-9][0-9]*\).*/\1/p' | read updcnt
echo "updated data's count is $updcnt."
#取得sqlerrd的第五个值
echo "$sdata" | sed -n -e '/sqlerrd/{n;s/^.*(5) \([-,0-9][0-9]*\).*/\1/;p;}' | read sqlerrd5
echo "sqlerrd(5) is $sqlerrd5."
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
-
-
-
Mariadb数据库的安装过程
大家都知道甲骨文公司收购了mysql后,有将mysql闭源的潜在风险,而mariadb的目的是完全兼容mysql,包括api和命令行,使之能轻松成为mysql...
[阅读全文]
-
-
-
-
-
-
网友评论