[oracle] cursor를 이용한 loop 돌리기 :: 개발/일상_Mr.lee

[oracle] cursor를 이용한 loop 돌리기

Posted by Mr.mandu.
2017. 11. 23. 14:56 개발/DB

안녕하세요.

오늘은 오라클에 대한 포스팅입니다.


어떠한 데이터를 select 하여 loop를 돌리며 그 데이터들을 활용해보도록 하겠습니다.

기본 템플릿이니 가져다가 쓰시면 됩니다.



CREATE OR REPLACE Function fun_getTest(v_test VARCHAR)

    RETURN VARCHAR

IS

   cursor c1 IS

     SELECT s_test FROM testTable WHERE use_yn = 'Y';


    v_index NUMBER;

    v_values VARCHAR(2000);


BEGIN


   v_values := '';

   v_index := 1;


    for item in c1

    loop


       if v_index = 1 then

           v_values := '''' || item.s_test || '''';

        else

           v_values := v_values || ',' || '''' || item.s_test|| '''';

        end if;


        v_index := v_index + 1;


    end loop;


    return v_values;


EXCEPTION

    WHEN OTHERS THEN

        DBMS_OUTPUT.PUT_LINE('Exception Occurred! (' || SQLCODE || ') : ' || SQLERRM);

        return '';

END;




cursor 부분을 유의깊게 보세요.

어떠한 테이블에서 컬럼을 select 해 옵니다.

그리고 


loop문에서 활용하는 형식입니다.

item이라는 건 임의의 변수입니다.

활용한 예시를 보면

item.컬럼<<< 형식으로 활용하시면 됩니다.


감사합니다.