同一个sql直接在数据库中运行和java中运行结果不一样?

2024-12-18 07:24:30
推荐回答(3个)
回答1:

这是因为oracle的sum函数在没有汇总记录时,返回的时null值,而java的处理有不一样。所以出错了。
用一下sql可以证明:
select (case when sum(xgd) is null then 'null' else 'other' end ) as AA from ht_htxmgx where xmid not in(select inid from kp_xmzd where xmbh='HWNJA7') and htbh='KS01201004058' ;
会看到返回的时字符串null
java可能是对其进行integer转换时给赋予了实际的值。你需要做一下null值的预判断就可以了。

回答2:

pstmt.setString(1, "HWNJA7");
pstmt.setString(2, "KS01201004058'");

回答3:

肯定不一样啊、
pstmt.setString(1, xmbh);
pstmt.setString(2, htbh);这两个语句分别是向第一列插入xmbh,像第二列插入htbh