请问这样的函数该如何写
函数里面是个循环,比如
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;