[SQL] SQL 서버 커서에서 여러 값을 가져옵니다
SQLSQL 서버 커서에서 여러 값을 가져옵니다
나는 내가 한 번에 처리하고 싶다고 찾아온다 행에서 여러 열이 포함 된 커서를 가지고있다. 내가 커서 그들을 한 번에 스칼라 값 하나에 커서에서 특정 열을 할당 보여 사용하는 방법에보고 한 사례의 대부분을 통지 한 후 다음 행으로 이동
EG
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
--Do Stuff with @name scalar value, then get next row from cursor
FETCH NEXT FROM db_cursor INTO @name
END
그것은 다음과 같은 일을 할 수 있다면 내가 알고 싶은 것은 :
OPEN db_cursor
FETCH NEXT FROM db_cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @myName = db_cursor.name;
SET @myAge = db_cursor.age;
SET @myFavoriteColor = db_cursor.favoriteColor;
--Do stuff with scalar values
FETCH NEXT FROM db_cursor;
END
도움말은 항상 감사합니다.
해결법
-
==============================
1.이 작업을해야합니다 :
이 작업을해야합니다 :
DECLARE db_cursor CURSOR FOR SELECT name, age, color FROM table; DECLARE @myName VARCHAR(256); DECLARE @myAge INT; DECLARE @myFavoriteColor VARCHAR(40); OPEN db_cursor; FETCH NEXT FROM db_cursor INTO @myName, @myAge, @myFavoriteColor; WHILE @@FETCH_STATUS = 0 BEGIN --Do stuff with scalar values FETCH NEXT FROM db_cursor INTO @myName, @myAge, @myFavoriteColor; END; CLOSE db_cursor; DEALLOCATE db_cursor;
-
==============================
2.@@ FETCH_STATUS를 사용하지 마십시오 -이 현재 연결에서 마지막 커서에서 상태를 반환합니다. 아래의 예를 사용합니다 :
@@ FETCH_STATUS를 사용하지 마십시오 -이 현재 연결에서 마지막 커서에서 상태를 반환합니다. 아래의 예를 사용합니다 :
declare @sqCur cursor; declare @data varchar(1000); declare @i int = 0, @lastNum int, @rowNum int; set @sqCur = cursor local static read_only for select row_number() over (order by(select null)) as RowNum ,Data -- you fields from YourIntTable open @cur begin try fetch last from @cur into @lastNum, @data fetch absolute 1 from @cur into @rowNum, @data --start from the beginning and get first value while @i < @lastNum begin set @i += 1 --Do your job here print @data fetch next from @cur into @rowNum, @data end end try begin catch close @cur --| deallocate @cur --|-remove this 3 lines if you do not throw ;throw --| end catch close @cur deallocate @cur
from https://stackoverflow.com/questions/4974981/get-multiple-values-in-sql-server-cursor by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 쿼리의 계산 실행 시간? (0) | 2020.06.23 |
---|---|
[SQL] 어떻게 오라클 SQL을 사용하여 현재 연도를받을 수 있나요? (0) | 2020.06.23 |
[SQL] 어떻게 INFORMATION_SCHEMA를 사용하여 기본 제약 조건을 찾을 수 있습니까? (0) | 2020.06.22 |
[SQL] 어떻게 말끔를 사용하여 효율적으로 집계 개체를 선택합니까? (0) | 2020.06.22 |
[SQL] 협회를 통해 쿼리는 가장 최근의 기록으로 제한 난간? (0) | 2020.06.22 |