# 表结构
course_contents
| pk1 | parent_pk1 | data |
|---|---|---|
| 1 | null | 祖菜单 |
| 2 | 1 | 父菜单 |
| 3 | 2 | 子菜单 |
# 递归SQL
select pk1 from (
select pk1,parent_pk1 from course_contents
start with pk1 = 21971 connect by pk1 = prior parent_pk1) where parent_pk1 is null;
# 创建一个可以直接找到根PK的FUNCTION
create or replace FUNCTION get_content_root_pk1(
child_pk1 IN NUMBER
)
RETURN NUMBER
IS
v_child_pk1 NUMBER;
v_root_pk1 NUMBER;
BEGIN
v_child_pk1 := child_pk1;
select pk1 into v_root_pk1 from (
select pk1,parent_pk1 from course_contents
start with pk1 = v_child_pk1 connect by pk1 = prior parent_pk1) where parent_pk1 is null;
return v_root_pk1;
END;
← AWR报告 SQLPLUS远程访问 →