带有TOP参数的Oracle SPROC,忽略0

时间:2017-06-23 09:18:41

标签: oracle

我有这个sproc使用参数来计算要记录的记录数。 它看起来像这样:

procedure ReadStockToSync(P_CUR out sys_refcursor, P_TAKE integer) is

begin

      open P_CUR for
              select TOP (@P_TAKE) 

我希望它做什么,如果TOP为0,则忽略P_Take。 有谁知道我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

如果我是你,我会有两个sql语句,并根据参数决定输出哪一个,例如:

procedure readstocktosync (p_take in integer,
                           p_cur out sys_refcursor) is
begin
  if p_take = 0 then
     open p_cur for <your select query returning all rows>;
  else
     open p_cur for <your select query with the correct syntax to retrieve the "top" row(s)>;
  end if;
end readstocktosync;