当前位置: 首页 > 图文教程 > 数据库 > DB2 > 用shell抽取,更新db2的数据

DB2
IBM DB2 日常维护汇总(八)
IBM DB2 日常维护汇总(七)
IBM DB2 日常维护汇总(五)
IBM DB2 日常维护汇总(四)
IBM DB2 日常维护汇总(三)
IBM DB2 日常维护汇总(二)
IBM DB2 日常维护汇总(一)
DB2常用傻瓜问题1000问(六)
DB2常用傻瓜问题1000问(五)
MySQL数据库结构和数据的导出和导入
DB2编程序小小技巧
在DB2中提高INSERT性能的技巧(1)
db2v8的pdf文档资料
DB2 9数据服务器发展3部曲
对比DB2 9和DB2 V8.x中的XML功能
用shell抽取,更新db2的数据
IBM DB2 Connect简介(1)
使用XQuery查询DB2 XML数据
DB2 9产品说明书在线参考地址(http)
使用SQL查询DB2 9中的XML数据

DB2 中的 用shell抽取,更新db2的数据


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 58 ::
收藏到网摘: n/a

正在看的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."