首页|资讯|互联网|电信|硬件|软件|情报|产经|博客|家庭|商用电脑|游戏|评测|学院|下载|网络通信|方案应用|搜索
移动计算|商用软件|外包|开源|中间件|企业|IT经理|发烧友|程序员|IT女性|学生|老板|笔记本|手机|台式机|数码|论坛
程序员

实例讲解一个shell处理db2数据库的程序

2008-03-26 14:03 作者:Alizze 来源:赛迪网
[摘要] 实例讲解一个shell处理db2数据库的程序,展示其SQL定义,判断,查询返回及数据处理,及更新后返回更细结果的方法。
[关键字] DB2 shell
  用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."

【责任编辑 陈东方】

关键词: DB2, shell,
  • 我要留言
关于eNet | 广告服务 | 版权声明 | 加入eNet | 联系我们 | 建议/投诉 | 网站导航 | 加入收藏

网站合作、内容监督、商务咨询、投诉建议:010-65245588
合作建议:hezuo@mail.enet.com.cn
Copyright © 1998--2008 硅谷动力公司版权所有 京ICP证000044号

京ICP证000044号