读书人

请教这样的函数该怎么写

发布时间: 2014-01-01 18:12:08 作者: rapoo

请问这样的函数该如何写
函数里面是个循环,比如
1. select a from tb where b=变量参数

2.一开始的时候求出a的值, 然后把a的值赋值给 语句里面的变量参数 变成
selct a from tb where b=之前求出来的a的值

3.根据2判断a的值存不存在 如果存在 继续循环 把求出来的值赋值给where后面的变量,如果不存在,
那么就把 1里面a的值 return 出来。



[解决办法]

引用:
函数里面是个循环,比如
1. select a from tb where b=变量参数

2.一开始的时候求出a的值, 然后把a的值赋值给 语句里面的变量参数 变成
selct a from tb where b=之前求出来的a的值

3.根据2判断a的值存不存在 如果存在 继续循环 把求出来的值赋值给where后面的变量,如果不存在,
那么就把 1里面a的值 return 出来。


CREATE OR REPLACE FUNCTION CT_TEST(A IN NUMBER) RETURN NUMBER IS
L_A NUMBER;
L_A1 NUMBER;
BEGIN
SELECT A INTO L_A FROM TB WHERE B = A;

WHILE L_A IS NOT NULL LOOP
BEGIN
SELECT A INTO L_A1 FROM TB WHERE B = L_A;
EXCEPTION
WHEN OTHERS THEN
L_A1 := NULL;
END;

IF L_A1 IS NULL THEN
RETURN L_A;
END IF;
END LOOP;

END CT_TEST;

读书人网 >oracle

热点推荐