1
resposta

Diferença entre for e o open cursor

Professor, de fato, de acordo com suas aulas utilizar o FOR no cursor é mais simples do que abrir e fechar cursor(open, fetch...) Mas existe alguma diferença ou regra para utilizar um ou outro, pq no exemplo dado estamos trabalhando com poucos registros, na vida real, os dois serviriam para tratar muitos registros?

1 resposta

Olá, Rodrigo, tudo bem?

Desde já peço desculpas pela demora em obter retorno.

Em uma procedure SQL, o uso do FOR e do cursor depende das necessidades e dos requisitos específicos do seu código. Aqui estão algumas orientações gerais:

FOR:

  • O FOR é usado quando você deseja executar uma ação repetitiva em um conjunto de registros conhecido ou com base em uma condição específica.
  • É adequado quando você precisa percorrer uma tabela ou uma seleção de registros sem a necessidade de operações complexas ou manipulações detalhadas.
  • É útil quando você precisa executar uma ação em cada linha individualmente, sem a necessidade de retornar ou manipular os registros posteriormente.

CURSOR:

  • O cursor é usado quando você precisa recuperar um conjunto de registros de uma consulta e manipulá-los de forma mais complexa, realizar operações adicionais ou retornar os resultados para uso posterior.
  • É adequado quando você precisa executar operações de leitura, atualização, exclusão ou inserção em registros específicos.
  • É útil quando você precisa iterar sobre um conjunto de registros em várias etapas e executar operações condicionais com base em valores específicos.

Em resumo, o FOR é mais simples e adequado para operações repetitivas básicas, enquanto o cursor oferece maior flexibilidade e controle sobre o processamento e manipulação de registros. A escolha entre eles dependerá das necessidades específicas do seu código e da complexidade das operações que você deseja realizar em uma procedure SQL.

Aproveito para informar que esse curso ganhou uma versão atualizada: Oracle PL/SQL: procedures, funções e exceções.

Espero ter ajudado.

Caso surja qualquer dúvida, fico à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!