oracle 如何调试 带输入参数,输出结果集的存储过程

steve_shen 2012-09-29 08:48:02
create or replace procedure P_BOOKSEARCH
(
v_BookName in books.bookname%type,
v_BookAuthor in books.bookauthor%type,
v_BookPub in books.bookpub%type,
v_BookType in books.booktype%type,
results out sys_refcursor
)
as
begin
if v_BookType='0000' then
open results for select bks.bookid,bks.bookname,bktp.typename,bks.bookauthor,to_char(bks.bookpubdate,'yyyy-mm-dd'),bks.bookpub
from
books bks,booktype bktp
where
bks.booktype=bktp.booktypeno
and bks.bookauthor like '% '||v_BookAuthor||'% '
and bks.bookname like '% '||v_BookName||'% '
and bks.bookpub like '% '||v_BookPub||'% ';
else
open results for select bks.bookid,bks.bookname,bktp.typename,bks.bookauthor,to_char(bks.bookpubdate,'yyyy-mm-dd'),bks.bookpub
from
books bks,booktype bktp
where
bks.booktype=bktp.booktypeno
and bks.bookauthor like '% '||v_BookAuthor||'% '
and bks.bookname like '% '||v_BookName||'% '
and bks.bookpub like '% '||v_BookPub||'% '
and bks.booktype=v_BookType;
end if;
end;
存储过程可以正确编译,但是调用的时候只有表头,没有数据,单单没有输入内容的时候sql查出来都有值的
...全文
240 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
人生无悔 2012-10-01
  • 打赏
  • 举报
回复
把for后的组合sql,打印出来,直接执行打印出来的语句,就清楚原因了

17,086

社区成员

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

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