oracle 存储过程字符串拼接,用in 查询 问题

weixin_40553225 2017-10-09 11:16:21
procedure CS is
V_PRPSPERSON varchar2(100);
V_count NUMBER ;
BEGIN
V_PRPSPERSON := '''172506213'''||','||'''172506211''' ;

SELECT COUNT(*) INTO v_count from PRPSperson a WHERE a.usercode IN (V_PRPSPERSON);
end CS;


oracle 存储过程 拼接完字符串,用in 方法为什么不行,求大神帮忙!急急急
...全文
538 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayanzs 2017-10-10
  • 打赏
  • 举报
回复
procedure CS is V_PRPSPERSON varchar2(100); V_count NUMBER ; V_sqlstr varchar2(1000); BEGIN V_PRPSPERSON := '''172506213'''||','||'''172506211''' ; V_sqlstr:='SELECT COUNT(*) from PRPSperson a WHERE a.usercode IN ('||V_PRPSPERSON||')'; execute immediate V_sqlstr INTO v_count; end CS;
碧水幽幽泉 2017-10-10
  • 打赏
  • 举报
回复
引用 3 楼 sxq129601 的回复:
要用动态SQL,或者游标循环去处理

不需要用到游标,写个动态SQL,然后execute immediate 执行就行。
weixin_40553225 2017-10-10
  • 打赏
  • 举报
回复
好的,谢谢您
sxq129601 2017-10-10
  • 打赏
  • 举报
回复
要用动态SQL,或者游标循环去处理
碧水幽幽泉 2017-10-09
  • 打赏
  • 举报
回复
如果硬是要用拼接的字符串,就只能写动态SQL了。
碧水幽幽泉 2017-10-09
  • 打赏
  • 举报
回复
in只能用于常量或变量列表,不能用于拼接的字符串。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧