Iterative Structures

Já vimos um pouco sobre estruturas iterativas antes, quando vimos alguns exemplos que possuíam um FOR. Uma estruturas dessas nada mais é que algo que nos permite repetir um determinado trecho de código n vezes. Iremos ver 3 desses mecanismos aqui. O primeiro será o já conhecido, o FOR.

Este é um FOR bem simples, apenas para aprender a sintaxe. Primeiro temos o “i” que significa a contagem do FOR que nesse caso foi configurado para ir de 1 até 5, então ele irá repetir 5 vezes o conteúdo do bloco do FOR e temos acesso a esse índice através da variável i que exibimos em tela. Podemos fazer a contagem inversa também, apenas adicionando a palavra reservada REVERSE.

Não ficamos limitados apenas a índices numéricos, mas podemos trabalhar com cursores que é algo que vamos ver ainda. Cursor nada mais é do que o resultado de uma consulta em que podemos trabalhar linha por linha ou por batch. Vamos ver a forma de um cursor implícito, em que apenas utilizamos o resultado de uma pesquisa.

E agora com um cursor declarado de forma explícita.

Algumas coisas acontecem implicitamente quando trabalhamos com cursores assim, mas como estamos falando apenas de laços interativos não vamos entrar em detalhes agora sobre isso, mais pra frente iremos falar sobre cursores. Lembrando apenas que a segunda opção, declarando um cursor, é a melhor forma de se trabalhar.

WHILE

A mecânica do WHILE é um pouco diferente da mecânica do FOR. No WHILE o uso de um índice não é obrigatório, mas se utilizarmos podemos fazer um controle mais complexo. A observação a se fazer é com a palavra reservada CONTINUE, que faz com que ele aborte a iteração atual e retorne para o início. Veja um exemplo.

Na imagem acima para efeitos apenas de exemplo, no IF ao invés dele imprimir o número par, ele exibe a frase que aparece na imagem e volta para o início do laço com o comando CONTINUE. Se trocar o comando CONTINUE por EXIT ele irá sair do laço logo após encontrar o primeiro número par.

SIMPLE LOOP

E para finalizar vamos ver algo sobre SIMPLE LOOP. Com alguns comandos podemos controlar o que acontece com um cursor ou uma instrução SQL comum. Veja alguns comandos:

  • %FOUND Retorna TRUE quando algum comando DML modificou pelo menos 1 linha
  • %NOTFOUND Retorna TRUE quando algum comando DML falhou em alterar uma linha
  • %ROWCOUNT Retorna a quantidade de linhas modificadas por DML ou a quantidade de linhas retornadas em um SELECT INTO
  • Na imagem acima executei uma instrução SQL simples, um UPDATE. Logo depois faço uma verificação na linha 7 se algo foi atualizado, se sim, ele imprime a quantidade de linhas atualizadas, nesse caso apenas 1. Vejamos como seria com cursores agora em um loop simples.

    No exemplo acima fizemos um uso simples e comum de cursores com um loop simples. Declarei o cursor, logo depois abrimos o cursor para uso na linha 7. Dentro do LOOP fazemos um FETCH, na linha 9, de linha por linha nas variáveis declaradas. Quando não é retornada mais nenhuma linha pelo FETCH é dado um EXIT, saída, do LOOP.

    Anúncios

    Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

    Marcado com: , , , , , , , , ,
    Publicado em PL/SQL

    Deixe um comentário

    Preencha os seus dados abaixo ou clique em um ícone para log in:

    Logotipo do WordPress.com

    Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

    Foto do Google

    Você está comentando utilizando sua conta Google. Sair /  Alterar )

    Imagem do Twitter

    Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

    Foto do Facebook

    Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

    Conectando a %s

    Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

    Esse Blog é reconhecido pela
    Certificações
    Sou articulista

    Clique para seguir este blog e receber notificações via email de novos posts.

    Tércio Costa

    Tércio Costa

    Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

    Links Pessoais

    Serviços verificados

    Visualizar Perfil Completo →

    Total de Visualizações da Página
    • 138.087 Visualizações
    %d blogueiros gostam disto: