Chinaunix

标题: db2执行sql文件如何忽略not found错误 [打印本页]

作者: zhzhs    时间: 2015-12-28 09:52
标题: db2执行sql文件如何忽略not found错误
本帖最后由 zhzhs 于 2015-12-28 10:24 编辑

有P_00001.sql 文件
delete from O1_00001 where f_date=(select f_date from curr_date);
insert into O1_00001
select (select f_date from curr_date),a.org,b.product_cd,sum(1)
from tm_account a,tm_plan b
where
    a.acct_no = b.acct_no
group by a.org,b.product_cd;
语句没有问题,执行成功

我在执行 db2 -tvf P_00001.sql
因为not found原因,在使用echo $? 捕捉运行结果时,返回1,而不是0
如何解决呢


就是说,怎么样忽略not found这类不影响结果的误报
作者: reyleon    时间: 2015-12-28 11:03
你是说某个 sql 文件 not found 么?


作者: zhzhs    时间: 2015-12-28 11:30
对的,中间可能有多个sql语句,对warning信息进行忽略
作者: yjh777    时间: 2015-12-28 13:29
封装一下 db2 , 事先判断一下 文件是否存在,如果不存在 忽略不执行sql,
作者: zhzhs    时间: 2015-12-28 14:17
本帖最后由 zhzhs 于 2015-12-28 15:42 编辑

回复 4# yjh777


不是的,我是考虑程序本身是正常的,而在shell里边进行判断的时候会误报错误信息。

用了个笨办法。
        db2 -tvf $pro_cont.sql -l tmp/pro_$$.log
        ret=`cat tmp/pro_$$.log | grep -v "SQLSTATE=02000" | grep "SQLSTATE=" | wc -l`
通过检查日志里边含有的信息来判断





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2