Control Structures

Com as estruturas de controle podemos verificar antes de executar algo ou então entrar em uma interação, um laço(loop), enquanto uma certa condição é satisfeita ou até ser instruída explicitamente a sair do laço. Neste post iremos ver as estruturas condicionais que engloba o if, elsif, else e case. No próximo post veremos os laços for, while e simple loop.

Devemos nos lembrar que condições lógicas do if e elsif trabalham com o conceito da lógica booleana, que no caso aceita dois parâmetros TRUE e FALSE. Mas devemos nos lembrar que isto nem sempre será verdade no nosso banco Oracle, poderá haver um terceiro caso, um terceiro valor, o NULL. Devemos então estar preparados para trabalhar com o NULL em nossas condições, utilizando funções como o NVL. Caso isto não seja feito será lançado um erro de execução. Vejam agora exemplos de uso.

Uma observação a se fazer primeiro, é que a variável lv_var1 é do tipo BOOLEAN que não existe no SQL e só poderá ser utilizada em blocos PL/SQL! Feita a observação, vamos analisar a imagem acima agora. O IF compara uma variável booleana que ainda não foi inicializada, ou seja, ela é NULL. Toda variável apenas declarada mas não inicializada tem como valor NULL. Como utilizamos a função NVL então nesse IF retorna FALSE, não sendo executado. O ELSIF é bem parecido, mas como a variável também é NULL e qualquer operação aritmética envolvendo NULL retorna NULL ele não é executado. Sobrando assim o ELSE que é executado caso nada seja TRUE.

CASE

O CASE do Pl/SQL é bem similar ao que já vimos no SQL, mas no PL/SQL termina o CASE com END CASE ao invés de im simples END como acontece no SQL. É bem similar também ao uso do if-elsif-else. Veja um exemplo do um CASE simples.

O case da imagem compara o valor da variável lv_var que no caso foi inicializada com o número 3, ele executa a instrução e sai do bloco do CASE. Caso nenhum valor do case fosse o valor da variável, o ELSE seria executado.

Existe também o SEARCHED CASE que difere de um simples CASE, que não se limita apenas a igualdade e sim se esta em uma faixa de valores, veja o exemplo abaixo.

No caso diferentemente do if-elsif-else não precisamos reduzir apenas para TRUE ou FALSE, pois caso a condição não seja atendida ele vai passar para a próxima comparação

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.077 Visualizações
%d blogueiros gostam disto: