oracle递归排序,返回排序号函数
2013-12-17 16:15
267 查看
/* 根据参数ID递归查询上级部门ID并把上级部门排序号拼到前面,用于递归排序*/
CREATE OR REPLACE FUNCTION fun_depnosortby (f_depid IN VARCHAR2) --返回排序号
RETURN VARCHAR2
AS
f_sortbys VARCHAR2 (300);
f_tempdepid VARCHAR2 (32);
BEGIN
f_tempdepid := f_depid;
WHILE f_tempdepid IS NOT NULL
LOOP
SELECT parentdepid, LPAD (sortby, 5, '0') || f_sortbys
INTO f_tempdepid, f_sortbys
FROM fw_department
WHERE depid = f_tempdepid;
END LOOP;
IF f_sortbys IS NULL
THEN
SELECT sortby
INTO f_sortbys
FROM fw_department
WHERE depid = f_tempdepid;
END IF;
RETURN f_sortbys;
END fun_depnosortby;
/
CREATE OR REPLACE FUNCTION fun_depnosortby (f_depid IN VARCHAR2) --返回排序号
RETURN VARCHAR2
AS
f_sortbys VARCHAR2 (300);
f_tempdepid VARCHAR2 (32);
BEGIN
f_tempdepid := f_depid;
WHILE f_tempdepid IS NOT NULL
LOOP
SELECT parentdepid, LPAD (sortby, 5, '0') || f_sortbys
INTO f_tempdepid, f_sortbys
FROM fw_department
WHERE depid = f_tempdepid;
END LOOP;
IF f_sortbys IS NULL
THEN
SELECT sortby
INTO f_sortbys
FROM fw_department
WHERE depid = f_tempdepid;
END IF;
RETURN f_sortbys;
END fun_depnosortby;
/
相关文章推荐
- Oracle 函数返回表结构和 oracle中排序的应用
- oracle自定义函数返回表类型
- oracle 用函数查询怎么直接返回一个表
- Oracle中基本的函数(返回table)
- oracle中分组排序函数用法
- oracle调用存储过程和函数返回结果集
- Oracle 使用函数 function查询数据返回游标
- ORACLE 函数返回对象类型结果集
- oracle调用存储过程和函数返回结果集
- 最完整的:JAVA调用ORACLE的存储过程、函数的返回结果集例子
- ORACLE 函数返回数据集
- ORACLE 函数处理的数据返回值过长 character string buffer too small , WMSYS.WM_CONCAT
- 利用Oracle函数及正则表达式进行排序
- Oracle-分析函数之排序值rank()和dense_rank()
- ODAC访问oracle时,提示:由于以前的函数求值超时,函数求值被禁用,必须继续执行才能正常返回
- Mybatis下配置调用Oracle自定义函数返回的游标结果集
- oracle函数返回结果集(动态查询Sql并定义游标)
- oracle的几个排序函数 ROW_NUMBER()/DENSE_RANK()/RANK()
- Oracle和SQLServer分别使用函数和存储过程返回结果集
- 一个oracle函数返回数组的例子