Procedures Cursores – Básico | Projetos e TI
28 de setembro de 2012 Daniel Rodrigues de OliveiraGestão EstratégicaTecnologiaBanco de Dadosbusiness intelligencePL/SQLSQL
Hoje vou falar sobre cursores. Uma possibilidade existente em PL/SQL e procedures que pode ser muito útil.
Um cursor em PL/SQL armazena uma área da memória para guardar o resultado de uma pesquisa. Esta pesquisa pode conter nenhum, um ou muitos dados que serão armazenados em linhas e colunas.
Então dentro de uma procedure podemos utilizar um cursor, que terá um nome e poderá se comportar como uma variável, porém uma variável que armazena mais de um campo dos dados. Através deste armazenamento é possível manipular ou comparar as informações
Os cursores podem ser Implícitos ou Explícitos sendo que o Explícito acaba por consumir mais recursos de memória.
Em uma procedure ou function o cursor deve ser declarado junto das variáveis, ou seja, antes do Begin e depois do create procedure/function. E podemos utiliza-lo de duas formas.
Forma Extensa ou Forma Resumida.
A Forma Extensa não é a forma mais utilizada e usamos os seguintes comandos
Open: Abre o cursor e executa o comando de pesquisa select informado na declaração, tendo executado a pesquisa o cursor separa um espaço da memória para guardar temporariamente esses dados de linhas e colunas. Já que agora esses dados estão armazenados na memória, o cursor não precisará mais acessar o banco para obtê-los. É nesse momento, também, que é passado para o cursor os parâmetros, caso tenha utilizado de parâmetros de entrada.
Fetch: Informará qual valor do cursor uma determinada variável receberá. Funciona através do conceito de ponteiro, onde ele irá informar a esta variável qual a linha corrente e em seguida posicionar o ponteiro na linha seguinte para a próxima repetição da operação. As linhas no cursor somente poderão ser acessadas quando seus valores forem passados para uma variável possível de ser manipuladas em PL/SQL.
Close: Fecha o cursor após sua execução e assim libera a área de memória onde o cursor estava armazenado.
Cursor Implícito Extenso:
O cursor implícito leva esse nome por suas ações ficarem "escondidas". Ele não informa o que está fazendo, apenas faz. E assim podemos utilizar alguns comandos de manipulação.
Cursor Implícito Resumido
No Cursor Implícito Resumido utilizamos somente um comando que irá substituir os outros três. Este comando a estrutura de repetição FOR. Este comando irá abrir o cursor, criar a variável do tipo registro que irá receber os dados sem necessidade de declara-la, realizar cópias das linhas, uma a uma a cada repetição, controlará o final do cursor e seu fechamento.
Por enquanto é isso. Obrigado pela visita e bons estudos.
← Evento: Desenvolva, contrate e gerencie SLA em TI Bases de estimativas: Entradas, Ferramentas e Técnicas e Saídas no Guia PMBOK® →