Olá, Tiago
Duas coisas. A primeira é que sua função ta com um parenteses a mais:
resultado=to_number($1,$2::text));
O último parenteses está sobrando.
E segundo, você pode chamar assim: SELECT to_number('21234',999);
Nessa forma ele vai retornar três digitos e vai te dar como resposta:
212.
Se usares: SELECT to_number('21234',9999);
Vai retornar 2123 e por ai vai.
Espero ter te ajudado.
[]s
2008/10/23 Tiago N. Sampaio <[EMAIL PROTECTED]>:
> Pessoal, bom dia.
>
> Estou migrando da versão 8.2 pra 8.3.3, e encontrei problemas com a
> to_number().
> Enfim, estou tentando escrever um wrapper, pra converter um int pra um
> text, mas está dando um erro que eu não sei o que é.
> Essa e a definicao da funcao:
>
> CREATE OR REPLACE FUNCTION to_number(text, int) RETURNS numeric AS
> $FUNCAO$
> DECLARE
> resultado numeric;
> BEGIN
> resultado=to_number($1,$2::text));
> RAISE NOTICE 'E o resultado eh: %',resultado;
> RETURN resultado;
> END;
> $FUNCAO$ LANGUAGE plpgsql;
>
> Esse foi o esqueleto final, mas jah tentei chamar assim:
> to_number($1,to_char($2,'99999999'));
> to_number($1,cast($2 to text));
>
> Mas sempre dá o mesmo erro:
>
> postgres=# SELECT to_number('21234',23);
> ERROR: invalid input syntax for type numeric: " "
> CONTEXT: PL/pgSQL function "to_number" line 4 at assignment
>
> E não tenho ideia pq ele tah sempre dando esse erro.
> Alguem tem alguma ideia?
>
> Alguem mais teve problemas com to_number() na versão nova???
>
> Abraços
> Tiago N. Sampaio
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
--
João Paulo
www.dextra.com.br/postgres
PostgreSQL
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral