[firebase-br] Zeros a Esquerda no Firebird 1.5

Reijanio Nunes Ribeiro rnribeiro em gmail.com
Qui Nov 28 14:22:52 -03 2013


Da uma olhada em subsstring
Em 28/11/2013 10:56, "Fabio Nascimento" <fhpnascimento em gmail.com> escreveu:

> Pessoal precisei retornar um resultado com zero a esquerda no firebird 1.5
> que não tem ainda a função lpad e char_length, então fiz uma stored
> procedure pra isso, de repente alguem pode precisar estou enviando aqui.
>
> Abs
> Fábio
>
> SET TERM ^ ;
>
> CREATE OR ALTER PROCEDURE PCHAR_LENGTH (
>     entrada varchar(50))
> returns (
>     saida integer)
> as
> declare variable i integer;
> begin
>
>     i = 0;
>
>     while (entrada <> '') do begin
>         i = i + 1;
>         entrada = substring(entrada from 2);
>     end
>
>     saida = i;
>
>   suspend;
> end^
>
> SET TERM ; ^
>
> GRANT EXECUTE ON PROCEDURE PCHAR_LENGTH TO SYSDBA;
>
> SET TERM ^ ;
>
> CREATE OR ALTER PROCEDURE PFILL_WITH_ZERO (
>     entrada varchar(50),
>     qtde integer)
> returns (
>     saida varchar(50))
> as
> declare variable i integer;
> declare variable tamanho integer;
> begin
>
> i = 0;
>
> saida = entrada;
> select * from pchar_length(:entrada) into tamanho;
>
> while (i < (qtde-tamanho)) do begin
>     saida = '0' || saida;
>     i = i + 1;
> end
>
> suspend;
>
> end^
>
> SET TERM ; ^
>
> GRANT EXECUTE ON PROCEDURE PCHAR_LENGTH TO PROCEDURE PFILL_WITH_ZERO;
>
> GRANT EXECUTE ON PROCEDURE PFILL_WITH_ZERO TO SYSDBA;
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista