1: function hp_filesystem_node_sortkey_gen (filesystem_node IN integer)
2: return varchar2
3: IS
4: CURSOR plsql_is_stupid IS
5: select filename,
6: decode(directory_p,'t','0','1') as dp,
7: parent_id
8: from users_files
9: where file_id=filesystem_node;
10: fullname varchar(500);
11: parentid integer;
12: dir_p varchar(1);
13: plsql_val plsql_is_stupid%ROWTYPE;
14: discriminator varchar(5); -- useful for discriminating between files and directories
15: BEGIN
16: OPEN plsql_is_stupid;
17: FETCH plsql_is_stupid into plsql_val;
18: dir_p := plsql_val.dp;
19: fullname := plsql_val.filename;
20: parentid := plsql_val.parent_id;
21:
22: IF parentid is null
23: THEN
24: return CONCAT(dir_p, fullname);
25: ELSE
26: return CONCAT(hp_filesystem_node_sortkey_gen(parentid), CONCAT('/', CONCAT(dir_p,fullname)));
27: END IF;
28: END;
|