for 문 돌리는 법 질문 좀요 ^^; 0 5 4,738

by 손님 [PL/SQL] FOR LOOP PLSQL [2012.03.06 08:57:22]


안녕하세요. 오라클 초보 입니다.

pl-sql 로 펑션을 하나 만들려 하는데요, for 문 문법을 몰라서요 ㅠ

tbl1
column1
01,02,03,

tbl1 에  column1 에 값이 위와 같이 있습니다.

tbl_common
val1     text1
01       사과
02       배
03       딸기

위의 공통 테이블에는 위와 같이 값이 있습니다.

이때, " 01,02,03, " 값을 "사과,배,딸기" 라는 값으로 반환하고 싶습니다.

"," 을 잘라서 for 문을 돌리면 되는데, 문법을 하나도 모르겠어요 ㅠㅠ

좀 급해서 그런데, 도움 좀 부탁 드립니다 (__)
by 박상준 [2012.03.06 09:42:46]
이걸 활용해 보세요.

DECLARE
    V_NAME                  VARCHAR2(2);                                                        
BEGIN
    
    FOR x IN (SELECT COLUMN1 FROM TBL1)
    
    LOOP
        SELECT TEXT1 INTO V_NAME FROM TBL_COMMON WHERE VAL1 = x.COLUMN1;
        DBMS_OUTPUT.PUT_LINE(V_NAME)        
    END LOOP;
END;

by 손님 [2012.03.06 11:25:36]
답변 감사드립니다.
근데, 결과값을 어떻게 리턴 시키죠?

by 부쉬맨 [2012.03.06 11:30:46]
declare 부분을 frunction으로 변형하면되겠죠.
dbms_out 쪽을 return(v_name) 으로 하시면되겠고요.

by 베스트드레곤 [2012.03.06 11:50:01]
자료입력 테이블을 만드셔서 그 테이블에 결과를 인서트해도 될것 같습니다.

by 손님 [2012.03.06 20:59:50]
위와 같이 했는데, 안되요 ㅠ
근데,  SELECT TEXT1 INTO V_NAME FROM TBL_COMMON WHERE VAL1 = x.COLUMN1;
=> 이렇게 하면, "
01,02,03," 값들이 알아서 배열로 나누어 지는건가요?
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입