DB2 -x select...去掉标题谈谈DB2的options选项

对于进行统计的一条SQL文,比如select count(*) from t_time,印象中返回的结果就是一个数字,所以我就在shell程序中直接用这个执行结果来进行其他的IF判断了,
但发现不行,因为db2 select count(*) from t_time的执行结果还附带其他信息,比如:提示多少条记录被选中,如果有标题还附带标题。shell程序如下所示:

dataCount=`db2 "select count(*) from YUS.KASHIDASHIKIN_SUII"`
if [ ${dataCount} -eq 0 ]
then
echo "Get 0 Rows"
else
echo "Get ${dataCount} Rows"
fi


注:dataCount=`db2 "select count(*) from YUS.KASHIDASHIKIN_SUII"`也可以写成dataCount=$(db2 "select count(*) from YUS.KASHIDASHIKIN_SUII")
在DB2命令行窗口中运行也是这样的。
C:\Program Files\IBM\SQLLIB\BIN>db2  select count(*) from t_time
1
-----------
         23
  1 レコードが選択されました。
对于上面的结果如何只显示总共的记录数23呢,只要在db2后的options选项里直接加-x就可以省略列标题的打印,+x不省略,默认就是+x。如下所示:
C:\Program Files\IBM\SQLLIB\BIN>db2 -x select count(*) from t_time
         23
C:\Program Files\IBM\SQLLIB\BIN>db2 +x  select count(*) from t_time
1
-----------
         23
  1 レコードが選択されました。
如此以来,修改下shell程序就可以不显示标题等多余信息了,如下所示:

dataCount=`db2 -x "select count(*) from YUS.KASHIDASHIKIN_SUII"`
if [ ${dataCount} -eq 0 ]
then
echo "Get 0 Rows"
else
echo "Get ${dataCount} Rows"
fi


对于options还有其他的一些选项,在命令窗口输入db2 ? options可以获得更多的选项,如下所示:
C:\Program Files\IBM\SQLLIB\BIN>db2 ? options
db2 [option ...] [db2-command | sql-statement | [? [phrase | message | sqlstate | class-code]]]
option: -a, -c, -e{c|s}, -finfile, -lhistfile, -n, -o, -p, -rreport, -s, -t,-td;, -v, -w, -x, -zoutputfile.
选项 描述 默认设置
-a 显示 SQLCA OFF
-c 自动提交 ON
-e 显示 SQLCODE/SQLSTATE OFF
-f 从输入文件读内容 OFF
-l 历史文件中的日志记录命令 OFF
-n 删除换行字符 OFF
-o 显示输出 ON
-p 显示 db2 交互性命令 ON
-r 将输出报告保存到文件 OFF
-s 出现命令错误时停止执行 OFF
-t 设置语句终止符 OFF
-v 回送当前命令 OFF
-w 显示 FETCH/SELECT 警告消息 ON
-x 省略列标题的打印 OFF
-z 将所有输出保存到输出文件 OFF

更多内容,可以参考IBM官方网站:
http://www.ibm.com/developerworks/cn/data/library/techarticles/0109adamache/0109adamache.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值