存储过程要返回结果集,并且有多个参数,有的参数的值是空值,是空值的不考虑,我该怎样写这个存储过程

liyaqin0223 2006-05-22 03:11:39
首先要返回结果集,并且有多个参数,比如有:id,name,org_id,industry_id,
如果上面的参数中的值为空的话就不用这个参数进行条件的限制,如果不为空,就在where 语句中写,我该怎样写这个存储过程?给个大概的结构即可,谢谢
...全文
301 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rogerfhl 2006-07-28
  • 打赏
  • 举报
回复
收藏!!
liyaqin0223 2006-05-22
  • 打赏
  • 举报
回复
谢谢,揭帖
Reeezak 2006-05-22
  • 打赏
  • 举报
回复
使用动态SQL和引用游标可以解决你的这个问题~~

动态SQL(SAMPLE):
l_SQL := 'SELECT * FROM XXXX WHERE ';
IF id IS NOT NULL THEN
l_SQL := l_SQL || 'id = ' || id;
END IF;

引用游标(步骤):
先在找个地方定义你的应用游标(SYS_REFCURSOR),一般写成输出参数,即
RS OUT SYS_REFCURSOR

然后在过程中写上
OPEN RS FOR l_SQL;

这样就可以了

17,378

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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