꿈꾸는 개발자, DBA 커뮤니티 oracleclub.com
티베로강좌  :  큐브리드강좌  :  오라클강좌  :  오라클팁  :  오라클사용자팁  :  Oracle Blogs  :  오라클Q&A  :  오라클자료실  :  IT컬럼/소식  :  좋은글감동  :  방명록
Searched by NAVER
DB검색 :
모두펼치기 | 모두닫기

Oracle 질문과 답변 oracleclub.com
커서 관련 질문 올립니다.~
손님 : 2009-07-02 15:28  

안녕하세요 초보입니다. ㅠ

예를 들어 컬럼이

num

1

1

1

2

2

1

2

이렇게 있습니다.

펑션을 만들껀대 이럴때 1에서 2로 바뀌는 순간과 2에서 1로 바뀌는 순간을 조회하고 싶습니다. 여기서는 리턴 값이 3회가 되겠군요.

대충이런식으로 만들었구요

--리턴 로우 개수

 v_cnt INTEGER;

--num 값

        v_num INTEGER;


CURSOR c1 IS
SELECT NUM

FROM  T

 

SELECT COUNT(*)  --몇개의 로우를 리턴하는지 알아봄 ..
INTO v_cnt

 FROM t   

BEGIN

OPEN c1;

FETCH c1 INTO v_num;

 

  FOR cnt IN  1..v_cnt-1 LOOP       

---여기에서 비교를 해야 합니다 현재행과 뒤에 행의 값을 비교를 해야 되는대 어떻게 해야될지 모르겠군요.

--커서는 맨 상단의 값만 보여주는군요 뭐 v_num(cnt) = v_num(cnt+1)이런식으로 비교할수 있는 그런 방법이 없을까요? 

--아님 더 좋은 방법 있으시면 좀 가르켜주세요~!

--그리고 포문을 돌리기위해 로우를 리턴하는 쿼리를 위에 만들었었는대 커서로도 몇개의 로우를 리턴하는지 확인 ---방법이 있습니까?
  END LOOP;

END;

조회수 134,  추천수 0
등록 글답변 글수정 목록보기
이름 쓰기
비밀번호
도움 주시는 곳
oraclejava