Shairon,  grato pela resposta... mas a sintaxe passada abaixo no select não
está sendo aceita. O retorno da função que vc colocou no exemplo como void,
eu sou obrigado a deixar como BOOLEAN,  pois o paramentro de saída da função
também é BOOLEAN.

 

 

Eu utilizei a sintaxe:    select  f_check_cpf(newCpf)  into  chkCpf;   

 

  … porém não estou conseguindo obter o valor que a função está atribuindo
ao parâmetro ( OUT ret boolean ).

 

Quando eu utilizo o Depurador do PGADMIN,  a variável chkCpf  aparece com
NULL.

 

Obrigado por mais sugestões.

 

Um abraço,

Jairo

 

De: [email protected]
[mailto:[email protected]] Em nome de Shairon
Toledo
Enviada em: quarta-feira, 12 de maio de 2010 12:36
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] problema na chamada de uma FUNCTION

 

Da mesma forma que usando return explicitamente mas omitindo o $2.

 

create or replace function test() returns void as $$

declare

  value boolean;

begin

  

   select into value public.f_check_cpf('222222');

   raise notice 'the value is %',value;

 

end

 

$$ language plpgsql;

 

 

2010/5/12 Jairo Rodrigues de Oliveira <[email protected]>

Pessoal,

 

                Agradeço a quem puder me orientar ref. a chamada de uma
FUNCTION para obter o valor do retorno ( paramentro tipo OUT ).

 

                Fiz a seguinte função que valida o CPF,  e que será
utilizada por uma aplicação em C#.  Mesmo assim utilizarei essa função em
outras funções no POSTGRESQL.

 

                Pergunta:  Como eu faço para chamar essa função (
f_check_cpf) obter os retorno  sobre o sucesso ou não da validação do CPF (
OUT ret boolean ),  levando em consideração que a função possui os seguintes
parâmetros:

 

                Grato !  Jairo !

                

CREATE OR REPLACE FUNCTION public.f_check_cpf(IN par_cpf character varying,
OUT ret boolean)

 RETURNS boolean AS

$BODY$

-- ROTINA DE VALIDAÇÃO DE CPF

-- Retorna True para CPF correto e FALSE se invalido

DECLARE

                                x real;

                                y real; --Variável temporária

                                soma integer;

                                dig1 integer; --Primeiro dígito do CPF

                                dig2 integer; --Segundo dígito do CPF

                                len integer; -- Tamanho do CPF

                                contloop integer; --Contador para loop

                                val_par_cpf varchar(11); --Valor do
parâmetro

BEGIN

 

           ....  

           -Teste do CPF

                IF ((dig1 || '' || dig2) = substring(val_par_cpf,len-1,2))
THEN

                               ret = true;

                ELSE

                               RAISE NOTICE 'DV do CPF Inválido: %',$1;

                               ret = false;

                END IF;

END;

$BODY$

  LANGUAGE 'plpgsql' IMMUTABLE;

 

Jairo Rodrigues de Oliveira

Tel:  11-3768-5194

Cel(Oi).: 11-9486-7595

Email:   <mailto:[email protected]> [email protected]

 

"Esta mensagem e seu conteúdo - inclusive anexos - são dedicados
exclusivamente para seu(s) destinatário(s), podendo conter informações
confidenciais e/ou legalmente privilegiadas. Qualquer modificação,
retransmissão, disseminação, impressão ou utilização não autorizada fica
estritamente proibida. Se você recebeu esta mensagem por engano, por favor
informe o remetente e delete o material e as cópias de sua máquina."

 


_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
[ ]'s
Shairon Toledo
http://www.google.com/profiles/shairon.toledo

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a