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
운영게시판
최근게시물
Sybase Q&A 3932 게시물 읽기
No. 3932
DECLARE CURSOR must be the only statement in a query batch. 문제..
작성자
이광호
작성일
2009-10-29 16:28
조회수
7,484

DECLARE cur CURSOR FOR SELECT title FROM table WHERE field = 1
DECLARE @title VARCHAR(20)

OPEN cur
  BEGIN
    PRINT @title
  END
CLOSE cur

DEALLOCATE CURSOR cur

위 쿼리문을 수행하면 

DECLARE CURSOR must be the only statement in a query batch. 이와같은 오류가 발생합니다.

다시 위 쿼리문을 프로시저로 만들어서 수행하면 정상적으로 동작합니다.

프로시저를 만들지 않고 바로 사용할 수 있는 방법이 있는지 알고 싶습니다.

정 안되면 프로시저를 만들어서 사용하면 되나 개인적으로 프로시저로 만들어놓은 쿼리문은 추후에 유지보수에 어려움(구차니즘)이 많아 사용하지 않는 편입니다.

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

Declare와 나머지 문장을 나누어서 실행해 보세요.

Chandad(ChanDad)님이 2009-10-30 11:25에 작성한 댓글입니다.

선언문에서 변수선언을 먼저 하고, 다음에 커서를 선언해보세요.

ㅎㅎ님이 2009-11-02 18:45에 작성한 댓글입니다. Edit

우선은 한 트랜젝션 상에서 수행이 되야해서 나누어서 실행은 불가능합니다.


어쩔 수 없이 커서를 사용하지 않고 rowno를 임의로 매겨서 where rowno = 1~100


루프 돌면서 수행하도록 해놨습니다..

이광호님이 2009-11-17 11:06에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3936MSTR을 사용할 경우 인덱스 사용.. [1]
에모토
2009-11-04
6450
3935하나의 테이블에 bigint와 numeric 타입을 같이 사용할 경우... [1]
에모토
2009-11-04
6615
3934서브쿼리에 대해 질문 드립니다. [1]
사이베이스
2009-11-03
6513
3932DECLARE CURSOR must be the only statement in a query batch. 문제.. [3]
이광호
2009-10-29
7484
3931min 값 추출 후 1row 가져오기 [2]
sybase
2009-10-29
6656
3930#temp 테이블 drop 문제 [2]
닷지운전병
2009-10-27
7287
3929C++에서 ODBC를 이용하는데요.. [1]
김성원
2009-10-26
6591
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다