Oracle中如何传递In子句的值?

kzy7517 2006-04-14 07:25:03
有一过程,参数P1 varchar2,要传入给一个游标的where中,where col_name in (参数).请问该如何传啊?只传一个没问题,传多个时如何传?记得以前搞出来过,格式咋整搞忘记了,又不想用动态SQL,用instr又不能用上索引,请达人指导.
例:传单个值A001,用A001或者'A001'都可以.
传多个值,无论用A001,A002还是'A001','A002'还是A001','A002都不行.
...全文
198 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
goldarcher2005 2006-04-26
  • 打赏
  • 举报
回复
可以先将参数拼出来
FOR N_ROW IN C_NSR LOOP
ls_par := ls_par||N_ROW.p1
END LOOP;
select * from a where b in ls_par

楼主可以试试看
kzy7517 2006-04-17
  • 打赏
  • 举报
回复
早试过了,用不上索引啊,奇慢.555~~~
guangli_zhang 2006-04-16
  • 打赏
  • 举报
回复
where instr( (参数),col_name)>0
kzy7517 2006-04-15
  • 打赏
  • 举报
回复
但参数多少定不下,有时可能会较多(几十上百吧).
vc555 2006-04-14
  • 打赏
  • 举报
回复
创建过程时多定义几个传入参数能达到效果吗?
create procedure xxx(aaa in varchar,bbb in varchar,ccc in varchar)....

exec xxx('A001','A002','')

3,496

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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