FETCH - Amazon Redshift

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;