请帮帮忙,谢谢一下是代码
PROCEDURE CALL_GET_CHILDREN(
in_topNo IN VARCHAR2,
in_topLevel IN INTEGER,
in_custNo IN VARCHAR2
)IS
CURSOR children_cursor IS --下级企业游标
SELECT
GRL_CSTNO,
GRL_LEVEL,
GRL_HASCHILD
FROM CB_GROUP_REL
WHERE
GRL_PARENTNO = in_custNo ;
BEGIN
--
FOR custinfo IN children_cursor
LOOP
--
INSERT INTO CB_GROUP_TREE
(
GRT_CSTNO,
GRT_RELCSTNO,
GRT_LEVEL
)
VALUES
(
in_topNo ,
custinfo.GRL_CSTNO,
custinfo.GRL_LEVEL - in_topLevel
);
--
IF custinfo.GRL_HASCHILD = '1' THEN
--
CALL_GET_CHILDREN(
in_topNo,
in_topLevel,
custinfo.GRL_CSTNO
);
END IF;
END LOOP;
END;
PROCEDURE CALL_GET_CHILDREN(
in_topNo IN VARCHAR2,
in_topLevel IN INTEGER,
in_custNo IN VARCHAR2
)IS
CURSOR children_cursor IS --下级企业游标
SELECT
GRL_CSTNO,
GRL_LEVEL,
GRL_HASCHILD
FROM CB_GROUP_REL
WHERE
GRL_PARENTNO = in_custNo ;
BEGIN
--
FOR custinfo IN children_cursor
LOOP
--
INSERT INTO CB_GROUP_TREE
(
GRT_CSTNO,
GRT_RELCSTNO,
GRT_LEVEL
)
VALUES
(
in_topNo ,
custinfo.GRL_CSTNO,
custinfo.GRL_LEVEL - in_topLevel
);
--
IF custinfo.GRL_HASCHILD = '1' THEN
--
CALL_GET_CHILDREN(
in_topNo,
in_topLevel,
custinfo.GRL_CSTNO
);
END IF;
END LOOP;
END;
本文介绍了一个Oracle存储过程,该过程用于递归地构建企业的子公司层级结构,并将其记录到CB_GROUP_TREE表中。该过程使用了游标和条件递归来实现这一功能。
339

被折叠的 条评论
为什么被折叠?



