[firebase-br] Zeros a Esquerda no Firebird 1.5
Fabio Nascimento
fhpnascimento em gmail.com
Qui Nov 28 10:54:54 -03 2013
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;
Mais detalhes sobre a lista de discussão lista