首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

当查询条件里In的参数是字符串型时

2012-05-24 
求助:当查询条件里In的参数是字符串型时在做Oracle reports,写的PL/SQL,将下面的语句做在cursor里cursor c

求助:当查询条件里In的参数是字符串型时
在做Oracle reports,写的PL/SQL,将下面的语句做在cursor里

cursor c_main_cursor(para varchar2) is 
select dept_id from deps where dept_id in decode(para,'',dept_id, para);

由于dept_id是整型,输入参数如果是1,2,3,4会被当作字符串型而得到invalid number的错误。

有没有什么办法解决?

谢谢


[解决办法]
将字符串解析成字段类型即可
[解决办法]
1 动态游标

2 拆分 

where in (select regexp_substr('1,2,3,4','\d+',1,level) from dual connect by level <= 4)
[解决办法]
改成动态SQL的游标吧,decode在动态SQL之外计算,就不会存在这样的问题了

热点排行