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值时会报空指针异常,这块改怎么处理? 展开
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值时会报空指针异常,这块改怎么处理? 展开
4个回答
展开全部
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。
展开全部
定义一个为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的说明数据库里面为空,自己根据业务处理吧
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的用法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询