DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

Função LPad para Firebird 2.0

Procedimento que reproduz a função LPAD para versões antigas do firebird
que não possuíam o suporte nativo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CREATE OR ALTER PROCEDURE LPAD_X  (
  ITEXTO  VARCHAR(50),
  ILENGTH SMALLINT,
  ICHAR   CHAR(1))
RETURNS (
  RETORNO VARCHAR(50))
AS
DECLARE VARIABLE VLOOP SMALLINT;
BEGIN
  -- ESSA STORED PROCEDURE PODE SER EXECUTADA PARA FIREBIRD 2.0
  -- A PARTIR DA VERSAO 2.1 JA EXISTE A LPAD QUE SUBSTITUI ESSA
  RETORNO = :ITEXTO;
  IF ((:ILENGTH > 0) AND
      (:ICHAR <> '') AND
      (CHAR_LENGTH(:ITEXTO) < :ILENGTH)) THEN
  BEGIN
    VLOOP = 0;
    WHILE (VLOOP < (:ILENGTH - CHAR_LENGTH(:ITEXTO)))DO
    BEGIN
      RETORNO = :ICHAR || :RETORNO;
      VLOOP = VLOOP + 1;
    END
  END
  SUSPEND;
END

Exemplo de uso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT RETORNO FROM LPAD_X(C.CODIGO, 6, '0');
Retorno: 00000+resultado de C.CODIGO
 
SELECT RETORNO FROM LPAD_X('123', 6, '0');
Retorno: 000123
 
SELECT RETORNO FROM LPAD_X('uia', 5, 'u');
Retorno: uuuia
 
SELECT RETORNO FROM LPAD_X('123456', 6, '0');
Retorno: 123456
 
SELECT RETORNO FROM LPAD_X('123456789', 5, '0');
Retorno: 123456789

Enviada por Ivan Cesar

Facebook Comments Box
  • Ivan Cesar
  • 3.830 views
  • 0 comentários
  • 10 de agosto de 2016

Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados