Quando uma consulta retorna múltiplas
linhas, é necessário declarar um "CURSOR" para processá-las. Um
cursor é similar a uma variável de arquivo ou um ponteiro de arquivo, que
aponta para uma única linha (tupla) do resultado da consulta. Em SQL os
cursores são controlados por três comandos: OPEN, FETCH,
CLOSE. O cursor é iniciado com o comando OPEN, que executa a consulta, devolve
o conjunto resultante de linhas e coloca o cursor para a posição anterior à
primeira linha do resultado da consulta. O comando FETCH, quando executado pela
primeira vez, devolve a primeira linha nas variáveis do programa e coloca o
cursor para apontar para aquela linha. Subseqüentes execuções do comando FETCH
avançam o cursor para a próxima linha no conjunto resultante e retornam a linha
nas variáveis do programa. Quando a última linha é processada, o cursor é
desbloqueado com o comando CLOSE. Os cursores existem principalmente para que
linguagens de programação que não permitem abstração para conjunto de
registros, como C, possam receber as linhas da resposta de uma consulta SQL uma
de cada vez. Com a utilização de "CURSORES", apresentam-se esses
dados como resultados das consulta, através de itens que representam os
elementos de interface com o usuário, atendendo os preceitos impostos pelos
diferentes paradigmas possivelmente envolvidos. Com isso os resultados são
mostrados utilizando o objeto padrão da interface,
disponíveis nas ferramentas de
construção de interfaces. Dessa forma, o ciclo de busca de informação nos mais
variados servidores tem início e fim na interface com o usuário.
https://www.ime.usp.br/~jef/apostila.pdf