database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6652 게시물 읽기
No. 6652
CURSOR 조건 관련 질문 입니다.
작성자
김녹연(jebul)
작성일
2013-04-11 13:31
조회수
7,937

CURSOR를 사용하고 있는데 이해가 되지 않는 부분이 있어 질문 드립니다.

A라는 table이 있고 Flag 라는 컬럼이 있습니다.

Declare에서 cursor 선언시에

flag 값이 0인 값들을 대상으로 선언 합니다.

(예를 들어 5행이 대상으로 선택되었습니다.)

그런데 로직 중간에 해당 행들의 Flag 값을 1로 업데이트 해주는 부분이 있습니다.

따라서 그 5행 들의 Flag 값도 1로 바뀝니다.(첫번째 loop 실행시)

문제는 Flag 값이 바뀌긴 했지만 이미 5개의 행이 대상으로

선택 되었으므로 나머지 4개의 행도 루프를 돌며 로직을 수행하는게

맞다고 생각 되는데, 실제로 실행해 보면

나머지 4개의 행에 대해서는 루프를 돌지 않고 그대로 Cursor가 종료 되어 버립니다.

제가 Cursor의 개념에 대해서 잘못 알고 있는것인지....

문제의 원인에 대해 알고 계시는 분이 계시다면 알려 주시면

정말 감사하겠습니다.

감사합니다.

이 글에 대한 댓글이 총 4건 있습니다.

fast_forward 등으로 커서를 생성하지 않았을까 싶습니다.

DECLARE 커서이름 CURSOR
FOR select문
FOR UPDATE flag

와 같이 맨 끝에 FOR UPDATE 절을 붙여서 오류가 발생하지 않는지 확인해 보세요.
 

우욱님이 2013-04-11 16:28에 작성한 댓글입니다. Edit

FOR UPDATE flag 구문은 넣지 않았습니다.

아직 원인을 찾고 있는 중입니다.

답변 달아 주셔서 정말 감사합니다. 좋은 하루 되세요

김녹연(jebul)님이 2013-04-11 19:38에 작성한 댓글입니다.

for update 컬럼이름

 

을 붙여서 커서를 만들어 보시라고 말씀드린 거였는데요.. ㅋ

우욱님이 2013-04-12 13:15에 작성한 댓글입니다. Edit

해당 커서부분을 임시테이블로 만들어서, 커서를 해보는 것도 괜찮을것 같은데...

이승철(yamyo)님이 2013-04-15 15:50에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6655생년월일에서 특정달 태어난 사람 조회 [1]
김정례
2013-04-17
7550
6654프로그램 에러시 락이걸리나요... [1]
정명규
2013-04-16
7290
6653MS-SQL 날짜값을 횡으로 조회할 때의 Query문의 [1]
김재호
2013-04-15
8122
6652CURSOR 조건 관련 질문 입니다. [4]
김녹연
2013-04-11
7937
6651쿼리를 이용하여 서버에 폴더를 생성할 수 있나요? [2]
구창민
2013-04-08
7677
6650테이블생성질문인데요 [1]
김순인
2013-04-05
7496
6649컬럼 공백 없애기 [2]
도와주셈
2013-04-02
7992
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다