在go 连接oracle中,如果sql结果集中某些字段是空值,而scan的结果又是string 这事儿就会报 无法将nil 赋值给 string对象的问题。
解决办法 :
a、 sql中使用nvl 指定默认的 default 字符串 nvl(col_name,"null")
b、使用 database/sql/NullString 类型来进行scan,然后判断 Valid
var tmpStr NullString
db.Query(sql).Scan(&tmpStr)
if tmpStr.Valid{
//get what you need
}else{
//set default val
}
网友评论