1: function hp_top_level_content_node (filesystem_node IN integer)
2: return varchar2
3: IS
4: CURSOR parent_cursor IS
5: select parent_id from users_files
6: where file_id=filesystem_node;
7: CURSOR managed_p_cursor IS
8: select managed_p from users_files
9: where file_id=filesystem_node;
10: managedp varchar(1);
11: parentid integer;
12: parent_managedp varchar(1);
13: BEGIN
14: OPEN parent_cursor;
15: OPEN managed_p_cursor;
16: FETCH parent_cursor INTO parentid;
17: FETCH managed_p_cursor INTO managedp;
18: CLOSE parent_cursor;
19: CLOSE managed_p_cursor;
20: IF parentid is null
21: THEN
22: return filesystem_node;
23: END IF;
24: IF managedp = 't'
25: THEN
26: select managed_p into parent_managedp
27: from users_files
28: where file_id=parentid;
29:
30: IF parent_managedp = 'f'
31: THEN
32: return filesystem_node;
33: ELSE
34: return hp_top_level_content_node(parentid);
35: END IF;
36: ELSE
37: return filesystem_node;
38: END IF;
39: END;
|