Oracle中function的递归
程序员文章站
2022-06-12 10:12:48
...
之前在测试一个FUNCTION的时候都是用pl/sql提供的test,但我今天写一个函数需要递归的时候就不知道怎么做了,还好见别人用sql测了我写的函数,所以这个递归就好写多了,废话少说测试FUNCTION的sql如下:
SELECT FUNCTIONNAME('参数') FROM DUAL;
有递归的sql如下:
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;
上一篇: LEARNING PYTORCH WITH EXAMPLES
下一篇: 七匹狼夹克