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;