[英]PL/SQL stored procedure loop compare value
我正在使用 PLSQL 创建一个插入存储过程以将数据插入表REGISTER
,该表具有 2 个输入参数PR_START_FROM
和PR_TO_END
,我想将两个新输入参数与现有数据进行比较,如下面的屏幕截图所示:
如果新输入不在记录一之间,则将其与记录二进行比较,如果不在记录二之间,则比较记录下一条记录,直到记录结束,如果在所有记录之间,则返回false,否则返回true。
这是我在 PLSQL 中尝试过的代码:
create or replace procedure TEST_LOOP(
PR_START_FROM in varchar2,
PR_END in varchar2,
V_CURSOR out SYS_REFCURSOR) is
ROWAMOUT number;
STARTNUM number;
ENDNUM number;
ID number;
begin
select count(*) into ROWAMOUT from REGISTER;
for ID in 1..ROWAMOUT loop
select START_FROM,TO_END into STARTNUM,ENDNUM from REGISTER where REGISTER_ID=ID;
if (PR_START_FROM between STARTNUM and ENDNUM) and (PR_END between STARTNUM and ENDNUM) then
{statement....}
else
{statement....}
end if;
end loop;
end TEST_LOOP;
感谢您的帮助
您可以通过单个 SQL Select 语句检查并返回true
或false
字符串值
select decode(sign(count(*)),1,'false','true')
from register
where :PR_START_FROM between start_from and to_end
or :PR_TO_END between start_from and to_end
是否至少有一个绑定变量留在范围内(如果是,将返回false
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.