Pular para o conteúdo

› Fóruns › SQL e PL/SQL › [duvida] IF e CASE

  • Este tópico contém 2 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 1 mês atrás por jccorrea.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #96198
    Anônimo

      Bom dia pessoal, estou iniciando em Oracle e estou com uma dúvida, preciso verificar se uma variável é nula se for, preciso fazer uma consulta, se não preciso fazer uma outra consulta.

      Parece fácil e achei que estava fazendo certo, porem o Oracle está apontando esse erro: “ORA-00900: INSTRUÇÃO SQL INVÁLIDA.”

      Alguém poderia me dar uma luz, de onde estou errando na sintaxe.

      Obrigado,
      trecho exemplo abaixo…

      –Case

      CASE
      WHEN 1 = 1
      THEN
      select *
      from BANANA
      WHEN 1 = 2
      THEN
      select *
      from BISCOITO
      END

      –IF

      IF 1 = 1
      THEN
      select *
      from BANANA
      ELSE
      select *
      from BISCOITO
      END

      –Ambos dão erro ORA-00900: INSTRUÇÃO SQL INVÁLIDA.

      #96200
      Manoel872
      Participante

        Acredito que você queira algo assim.

        DECLARE
        CONT NUMBER;
        BEGIN

        IF 1 =1 THEN

        SELECT COUNT(1)
        INTO CONT
        FROM BANANA;

        ELSE

        SELECT COUNT(1)
        INTO CONT
        FROM BISCOITO;

        END IF;

        END;

        #96204
        jccorrea
        Participante

          Na certa está usando PL/SQL.
          …
          IF minha_variavel IS NULL THEN
          …
          ELSE
          …
          END IF ;
          …
          [quote=”guicstrike”:xjbg5c1h]Bom dia pessoal, estou iniciando em Oracle e estou com uma dúvida, preciso verificar se uma variável é nula se for, preciso fazer uma consulta, se não preciso fazer uma outra consulta.

          Parece fácil e achei que estava fazendo certo, porem o Oracle está apontando esse erro: “ORA-00900: INSTRUÇÃO SQL INVÁLIDA.”

          Alguém poderia me dar uma luz, de onde estou errando na sintaxe.

          Obrigado,
          trecho exemplo abaixo…

          –Case

          CASE
          WHEN 1 = 1
          THEN
          select *
          from BANANA
          WHEN 1 = 2
          THEN
          select *
          from BISCOITO
          END

          –IF

          IF 1 = 1
          THEN
          select *
          from BANANA
          ELSE
          select *
          from BISCOITO
          END

          –Ambos dão erro ORA-00900: INSTRUÇÃO SQL INVÁLIDA.[/quote]

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.

        › Fóruns › SQL e PL/SQL › [duvida] IF e CASE