• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    用shell抽取,更新db2的数据

    发布者: 福建二哥 | 发布时间: 2025-6-18 12:44| 查看数: 99| 评论数: 0|帖子模式

    正在看的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." </p></STRONG>
    来源:https://www.jb51.net/article/9639.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表