FETCH - Amazon Redshift

Amazon Redshift는 2025년 11월 1일부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. Python UDF를 사용하려면 이 날짜 이전에 UDF를 생성하세요. 기존 Python UDF는 정상적으로 계속 작동합니다. 자세한 내용은 블로그 게시물을 참조하세요.

FETCH

커서를 사용하여 행을 가져옵니다. 커서 선언에 대한 자세한 내용은 DECLARE 섹션을 참조하세요.

FETCH는 커서 내에서 현재 위치를 기준으로 행을 가져옵니다. 생성되는 커서는 첫 번째 행 앞에 배치됩니다. FETCH 후, 커서는 마지막으로 가져온 행에 배치됩니다. FETCH ALL을 실행한 후와 같이, 사용 가능한 행의 끝에서 FETCH 실행이 끝나는 경우 커서는 마지막 행 다음에 배치된 상태로 남습니다.

FORWARD 0은 커서를 이동하지 않고 현재 행을 가져옵니다. 즉, 가장 최근에 가져온 행을 가져옵니다. 커서가 첫 번째 행 앞이나 마지막 행 뒤에 있는 경우에는 아무런 행도 반환되지 않습니다.

커서의 첫 행을 가져올 때, 필요한 경우 메모리나 디스크에서 리더 노드에 전체 결과 집합이 구체화됩니다. 큰 결과 집합을 가진 커서를 사용하면 성능에 나쁜 영향을 미칠 가능성이 있으므로, 가급적이면 다른 접근 방식을 사용하는 것이 좋습니다. 자세한 내용은 커서 사용 시 성능 고려사항 섹션을 참조하세요.

자세한 내용은 DECLARE, CLOSE 섹션을 참조하세요.

구문

FETCH [ NEXT | ALL | {FORWARD [ count | ALL ] } ] FROM cursor

파라미터

next

다음 행을 가져옵니다. 이 값이 기본값입니다.

ALL

나머지 행을 전부 가져옵니다. (FORWARD ALL과 동일합니다.) ALL은 단일 노드 클러스터에 대해 지원되지 않습니다.

FORWARD [ count | ALL ]

다음 count개의 행 또는 나머지 행 전부를 가져옵니다. FORWARD 0은 현재 행을 가져옵니다. 단일 노드 클러스터의 경우 count의 최댓값은 1000입니다. 단일 노드 클러스터에서는 FORWARD ALL이 지원되지 않습니다.

cursor

새 커서의 이름입니다.

FETCH 예

다음 예에서는 LOLLAPALOOZA로 명명된 커서를 선언하여 롤라팔루자(LOLLAPALOOZA) 행사를 위한 판매 정보를 선택한 후 커서를 사용하여 결과 집합에서 행을 가져옵니다.

-- Begin a transaction begin; -- Declare a cursor declare lollapalooza cursor for select eventname, starttime, pricepaid/qtysold as costperticket, qtysold from sales, event where sales.eventid = event.eventid and eventname='Lollapalooza'; -- Fetch the first 5 rows in the cursor lollapalooza: fetch forward 5 from lollapalooza; eventname | starttime | costperticket | qtysold --------------+---------------------+---------------+--------- Lollapalooza | 2008-05-01 19:00:00 | 92.00000000 | 3 Lollapalooza | 2008-11-15 15:00:00 | 222.00000000 | 2 Lollapalooza | 2008-04-17 15:00:00 | 239.00000000 | 3 Lollapalooza | 2008-04-17 15:00:00 | 239.00000000 | 4 Lollapalooza | 2008-04-17 15:00:00 | 239.00000000 | 1 (5 rows) -- Fetch the next row: fetch next from lollapalooza; eventname | starttime | costperticket | qtysold --------------+---------------------+---------------+--------- Lollapalooza | 2008-10-06 14:00:00 | 114.00000000 | 2 -- Close the cursor and end the transaction: close lollapalooza; commit;