oracle的sql语句where语句中nvl函数的第一个参数可以使用宿主变量不,如where 字段名1=nvl(:va,字段名1) 15
其实我就是为了解决前台传来的某个条件为空值时,对应的那个条件就不要;不为空时,对应的那个条件就用上...
其实我就是为了解决前台传来的某个条件为空值时,对应的那个条件就不要;不为空时,对应的那个条件就用上
展开
3个回答
展开全部
看你的问题,字段1=nvl(:va,字段1),是没有问题的
select R.REGION_NAME REGION_NAME, R.REGION_ID HID_ID, SUM(G.BADBILL_FEE) sum_fee from SYS_REGION R, GCI_BADBILL_SUM G where G.city_id = R.REGION_ID and R.SUP_REGION_ID = ? and G.badfee_type_id = nvl(:badfeeType,G.badfee_type_id) and G.badfee_level_id = nvl(:badfeeLevel,G.badfee_level_id) and G.grp_degree_id = nvl(:grpDegree,G.grp_degree_id) 但我在java程序里将宿主变量值传入,出银饥斗现索引丢失参数错误
检查一下,
1. 检查表sys_region、gci_badbill_sum的索引状态
2. 传入的如果是字符串变量锋磨,是否有引号''
3. 如果有肢含必要,贴一下具体的错误,是ORA的还是java的,有的话都贴一下
select R.REGION_NAME REGION_NAME, R.REGION_ID HID_ID, SUM(G.BADBILL_FEE) sum_fee from SYS_REGION R, GCI_BADBILL_SUM G where G.city_id = R.REGION_ID and R.SUP_REGION_ID = ? and G.badfee_type_id = nvl(:badfeeType,G.badfee_type_id) and G.badfee_level_id = nvl(:badfeeLevel,G.badfee_level_id) and G.grp_degree_id = nvl(:grpDegree,G.grp_degree_id) 但我在java程序里将宿主变量值传入,出银饥斗现索引丢失参数错误
检查一下,
1. 检查表sys_region、gci_badbill_sum的索引状态
2. 传入的如果是字符串变量锋磨,是否有引号''
3. 如果有肢含必要,贴一下具体的错误,是ORA的还是java的,有的话都贴一下
展开全部
引用楼枣坦主:“其实我就是为了解决前台传来的某个条件为空值时,对应的那个条件清岩胡就不要;不为空时,对应的那个条件就用上”
不用这么麻烦,你在程序中判断传来的变量为空时,把条件放到一个字符串中,如:string str=“ where 1=1 ” ; str=" and 字段="+变量; 然后把这个str追加到你的sql当答拦中不就可以了
不用这么麻烦,你在程序中判断传来的变量为空时,把条件放到一个字符串中,如:string str=“ where 1=1 ” ; str=" and 字段="+变量; 然后把这个str追加到你的sql当答拦中不就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以
追问
select R.REGION_NAME REGION_NAME, R.REGION_ID HID_ID, SUM(G.BADBILL_FEE) sum_fee from SYS_REGION R, GCI_BADBILL_SUM G where G.city_id = R.REGION_ID and R.SUP_REGION_ID = ? and G.badfee_type_id = nvl(:badfeeType,G.badfee_type_id) and G.badfee_level_id = nvl(:badfeeLevel,G.badfee_level_id) and G.grp_degree_id = nvl(:grpDegree,G.grp_degree_id) 但我在java程序里将宿主变量值传入,出现索引丢失参数错误
追答
你可以写个存储过程,给存储过程传参数.
JAVA我不了解.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询