Pular para o conteúdo
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #78844
    Anônimo

      Olá pessoal.

      criei para teste a seguinte função:


      create or replace function teste(svalor boolean) return varchar
      as
      res varchar(255);
      begin
      if svalor then
      res := 'SIM';
      else
      res := 'NAO';
      end if;
      return res;
      end;

      E então testei ela neste select:

      select teste( ‘teste’ = ‘teste’ ) from dual;

      ele da erro dizendo: ‘missing right parenteses.’

      dei uma pesquisada e vi que não existe o tipo boolean no Oracle, só no PL-SQL, como eu poderia passar um boolean para esta função?

      Grato a todos.

      #78845
      chduarte
      Participante

        Neste caso vc devera utilizar esta funcao dentro de um bloco anonimo porque no oracle nao existe boolean para sql.

        []

        #78846
        Fontalva
        Participante


          create or replace function teste(svalor boolean) return varchar
          as
          res varchar(255);
          begin
          if svalor then
          res := 'SIM';
          else
          res := 'NAO';
          end if;
          return res;
          end;

          O que esta acontecendo é que voce esta passando um parametro varchar2 numa função que tem como parametro boolean. Não entendi porque esta passando o valor ‘teste’???

          o que voce poderia fazer para testar esta função do jeito que ela foi criada é o seguinte:


          select teste(true) from dual;
          ou
          select teste(false) from dual;

          #78847
          Fontalva
          Participante

            opsss…Desculpem.

            eu não havia percebido, mas ‘teste’ = ‘teste’ é uma condição booleana….foi mal não prestei atenção.

            [quote=”Fontalva”:396k53j0]
            create or replace function teste(svalor boolean) return varchar
            as
            res varchar(255);
            begin
            if svalor then
            res := 'SIM';
            else
            res := 'NAO';
            end if;
            return res;
            end;

            O que esta acontecendo é que voce esta passando um parametro varchar2 numa função que tem como parametro boolean. Não entendi porque esta passando o valor ‘teste’???

            o que voce poderia fazer para testar esta função do jeito que ela foi criada é o seguinte:


            select teste(true) from dual;
            ou
            select teste(false) from dual;

            [/quote]

            #78848
            chduarte
            Participante

              TRUE e FALSE sao somente validos para PL/SQL. No Oracle nao é possivel utilizar valores booleanos em query.

              []

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