社区
Oracle
帖子详情
求助:当查询条件里In的参数是字符串型时
xlshen_lxz
2012-05-11 12:24:59
在做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的错误。
有没有什么办法解决?
谢谢
...全文
189
9
打赏
收藏
求助:当查询条件里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的错误。 有没有什么办法解决? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xlshen_lxz
2012-05-11
打赏
举报
回复
动态游标我得拼接好多东西,太麻烦了,实在不行再用,谢谢
薛定谔之死猫
2012-05-11
打赏
举报
回复
改成动态SQL的游标吧,decode在动态SQL之外计算,就不会存在这样的问题了
xlshen_lxz
2012-05-11
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
1 动态游标
2 拆分
where in (select regexp_substr('1,2,3,4','\d+',1,level) from dual connect by level <= 4)
[/Quote]
如果要返回好多行数据的,但又不确定可能返回多少行当,connect by level <=4怎么改?
谢谢
forgetsam
2012-05-11
打赏
举报
回复
1 动态游标
2 拆分
where in (select regexp_substr('1,2,3,4','\d+',1,level) from dual connect by level <= 4)
iqlife
2012-05-11
打赏
举报
回复
将字符串解析成字段类型即可
forgetsam
2012-05-11
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
引用 2 楼 的回复:
1 动态游标
2 拆分
where in (select regexp_substr('1,2,3,4','\d+',1,level) from dual connect by level <= 4)
如果要返回好多行数据的,但又不确定可能返回多少行当,connect by level <=4怎么改?
谢谢
[/Quote]
level <= (select length(原字符串)-length(replace(原字符串,'分隔符比如,'))+1 from dual )
xlshen_lxz
2012-05-11
打赏
举报
回复
用instr做了搞定了
bayueguihuaxiang
2012-05-11
打赏
举报
回复
应该不会出现这样的错误
即便参数数据类型为varchar2,只要是数字字符,oracle会隐式转化为数字型的
xlshen_lxz
2012-05-11
打赏
举报
回复
针对3楼,有解答吗?
Mybatis 传入的
参数
是
字符串
String,变成Boolean的ture了
Mybatis
参数
字符串
变 布尔类
型
String Boolean
java
字符串
相同字符_Java中
字符串
中连续相同字符去重方法
Java中
字符串
中连续相同字符去重方法最近参加了一个面试,问到了如何在一个
字符串
中连续相同字符去重,想了想用正则表达式应该可以轻松实现。可是由于长
时
间没有编码了,而且由于原先的工作用到的比较少。具体的自己...
java向c++传递
字符串
数组 com,将
字符串
数组从C#传递到C++ dll,然后再返回
将
字符串
数组从C#传递到C++ dll,然后再返回好吧,所以我想从C#应用程序传递一个
字符串
数组到C++ DLL,然后在另一个C#应用程序中获取这些信息。我相信我正确传递给C++,但是我无法从dll中获得正确的...
python去掉
字符串
开头的零_原生jS之-去掉
字符串
开头和结尾的空字符
思路就是我们利用正则匹配到所谓的空格,然后替换为空字符,我们要用到的是str的replace API代码如下:Document// 去除
字符串
开头和结尾的空格function delate(str){// 匹配到开头的空格,然后将其替换为空,返回新...
Python中的
字符串
和文本操作
Python中的
字符串
和文本操作 1.针对任意多的分隔符拆分
字符串
...当你需要更加灵活的切割
字符串
的
时
候, 最好使用 re.split() 方法: import re line = 'asdf fjdk; afed, fjek,asfd, foo' ---函数 re.s...
Oracle
17,090
社区成员
55,238
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章