Oracle中function的递归
之前在测试⼀个FUNCTION的时候都是⽤pl/sql提供的test,但我今天写⼀个函数需要递归的时候就不知道怎么做了,还好见别⼈⽤sql测了我写的函数,所以这个递归就好写多了,废话少说测试FUNCTION的sql如下:
function怎么记忆SELECT FUNCTIONNAME('参数') FROM DUAL;
有递归的sql如下:
create or replace function IS_BLOCK
(IN_DOMAINID IN NUMBER
) return NUMBER is
VAR_COUNT NUMBER;
VAR_PARENTID NUMBER;
Result NUMBER;
begin
SELECT COUNT(ID) INTO VAR_COUNT FROM BLOCK_LOG WHERE RESULTSTATUS IN (0, 2) AND SOURCEID = IN_DOMAINID;
IF VAR_COUNT = 0 THEN
SELECT PARENTID INTO VAR_PARENTID FROM DOMAINTREE WHERE DOMAINID = IN_DOMAINID;
/*判断是否是根节点*/
IF VAR_PARENTID = 0 THEN
Result := 0;
ELSE
SELECT TEST_FUNCTION(VAR_PARENTID) INTO Result FROM DUAL;
END IF;
ELSE
Result := 1;
END IF;
return Result;
end IS_BLOCK;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论