暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle满足条件,跳出循环存储过程

东面而视 2018-01-17
955


oracle 在特定的情况下需要查询满足条件,需跳出存储过程语句,示例:



CREATE OR REPLACE PROCEDURE PROC_STATETABLE(inputterm    IN VARCHAR2,

                                           return_value out varchar2) IS

  pragma autonomous_transaction;

  ---------------------------------------------------------------------

  -- 作    者:我是毕加索

  -- 日    期:20171219

  -- 功能描述:数仓获取文件状态

  -- 传入参数:inputTerm 格式:YYYYMMDD

  --                     return_value :返回值

  -- 算法描述:

  -- 依赖关系:

  --     源  表:

  --     参数表:

  --     目标表:STATETABLE     状态表


  -- 备    注:

  -- 修改历史:

  -- [时    间]                 内容                           修改人

  -- ----------  --------------------------------------------  -------


  ---------------------------------------------------------------------

  gdate          VARCHAR2(8);


  V_COUNT NUMBER;--文件个数


BEGIN


  gdate          := to_char(to_date(inputterm, 'YYYY-MM-DD'), 'yyyymmdd');


--开始查询语句

  select count(1) into V_COUNT  from STATE_TABLE where FILE_TREAM =gdate;


 

--死循环执行语句

LOOP

--在此不停的查询,赋值给V_COUNT  

  select count(1) into V_COUNT  from STATE_TABLE where FILE_TREAM =gdate;


 

 if V_COUNT >0 then


     return_value   := 'yes'; --完成执行

    

      EXIT;--强制退出存储过程


     else


     return_value   := 'wait'; --等待执行


     end if;


  END LOOP;



  EXCEPTION

  WHEN OTHERS Then

    return_value := substr(sqlerrm, 1, 300);

    rollback;


END PROC_STATETABLE;


文章转载自东面而视,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论