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
