ORACLE 数据库中的NUMBER类型的字段为NULL时怎么处理?

publicList<Map<String,Object>>findZxm(Stringlxsbh){StringBuffersql=newStringBuffer();... public List<Map<String, Object>> findZxm(String lxsbh) {
StringBuffer sql = new StringBuffer();
sql.append("select N_XMXZ, N_LXSBH from t_zxxm_lxs where N_LXSBH =");
sql.append("(select N_MAINXMBH From t_zxxm_lxs WHere N_LXSBH =");
sql.append(lxsbh);
sql.append(")");
List<Map<String, Object>> list = this.getJdbcTemplate().queryForList(
sql.toString());
return list;

}

当调用改方法时:findZxm(lxsbh).get(0).get("N_XMXZ").equals(BigDecimal.valueOf(Long.valueOf(5)))
如果N_XMXZ为null值时会报空指针异常,这块改怎么处理?
展开
 我来答
百度网友faadf46
高粉答主

2020-05-13 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:67.7万
展开全部

1、创建一张数据库测试表,用于演示null空值的查询。

2、往测试表中插入测试记录,包含一个NULL、空字符串、非空字符串值。

3、查询测试表中的所有数据,select * from tblNullData。

4、在oracle数据库中,null与任何字段相比都会返回false,为此,oracle提供了一个is null词组判断null。从运行结果可以看出,空字符串不是null select * from tblNullData where ColName is null。

5、在oracle数据库中,想要查询非null的值,就需要使用is not null词组判断了。从运行结果可以看出,空字符串的记录行查询出来了select * from tblNullData where ColName is not null。

taozitsl
推荐于2017-11-25 · TA获得超过184个赞
知道答主
回答量:89
采纳率:0%
帮助的人:38.4万
展开全部
定义一个为null的情况接收的值,或者说数据库不可能存的值如 -1
sql.append("select N_XMXZ, N_LXSBH from t_zxxm_lxs where N_LXSBH =");

改为:
sql.append("select nvl(N_XMXZ,-1) N_XMXZ, N_LXSBH from t_zxxm_lxs where N_LXSBH =");

前台取出如何是-1的说明数据库里面为空,自己根据业务处理吧
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-01-30
展开全部
select nvl(N_XMXZ,0), N_LXSBH from ** 自己在网上找找nvl的用法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kuangshenwl
2013-01-30
知道答主
回答量:12
采纳率:0%
帮助的人:9万
展开全部
nvl(N_XMXZ,0)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式