GARANTIR DESCONTO

Fórum Substring via SQL - UDF´s #55087

06/02/2006

0

Pessoal estou quebrando a cabeça para resolver uma substring via SQL - junto ao nosso famoso Interbase 6,5 - com D7 - DbExpress .

Utilizando o IBExpert - Voce tem esta Function - porém ao utilizá-la não estaa dando certo. Postarei minha SP

CREATE PROCEDURE LISTAGEM_LIGACOES
RETURNS (
    X_DATA VARCHAR(30),
    X_DESTINATARIO VARCHAR(60),
    X_TELEFONE1 VARCHAR(20),
    X_SOLICITANTE VARCHAR(60),
    X_TIPO VARCHAR(20),
    X_REALIZADA char(3))
AS
begin                    /*2006-02-06 10:00:0000*/
                         /*123456789012345678901*/
 for SELECT
      substr(CAST(AGL.aglig_data AS VARCHAR(30)),9,2)||´.´||
      substr(CAST(AGL.aglig_data AS VARCHAR(30)),6,2)||´.´||
      substr(CAST(AGL.aglig_data AS VARCHAR(30)),1,4)||´.´||
      substr(CAST(AGL.aglig_data AS VARCHAR(30)),12,13),
 AGL.aglig_destinatario, AGL.aglig_tel_destino,SOL.sol_nome,
 SOL.sol_tipo,AGL.aglig_realizada
 FROM agenda_ligacoes AGL

 LEFT JOIN SOLICITANTES_TELEFONE SOL on  SOL.sol_id=AGL.aglig_sol_id
 ORDER BY AGL.aglig_data

 INTO :x_data,:x_destinatario,:x_telefone1,:x_solicitante,:x_tipo,:x_realizada
  /* Procedure Text */
 DO BEGIN
    if (X_REALIZADA=´S´) then x_realizada=´Sim´;
    if (x_realizada=´N´) then x_realizada=´Não´;
  suspend;
END
end


Assim está retornando ´Null´ o campo :x_data

Abaixo posto a UDF - SUBSTR

DECLARE EXTERNAL FUNCTION SUBSTR
    CSTRING(80) CHARACTER SET NONE,
    SMALLINT,
    SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT ´IB_UDF_substr´ MODULE_NAME ´ib_udf´ 


Fiz uns testes desta forma:
...´ for SELECT
substr(CAST(AGL.aglig_data AS VARCHAR(30)),1,24),....´

Ai retorna toda a String desta Forma ´2006-02-06 09:54:01.0000´

eu queira concatenar a data na seguinte forma:

06/02/2006 09:54:01.0000 Outro campo Outro campo ... e assim sucessivamente.

Fiz pesquisa no forum sobre o uso da Substring , vi exemplos assim

SubString(campo,from 1 for 5) ai quando voce copila a SP dá o erro
informando que desconhece o ´From´, voce tira o From e coloca em seu lugar somente os numeros substring(campo,1,5), e copila - dá o erro que nao existe tal funcao... e ai galera como sair desta???

Saudações/Hélio|

[color=green:4ee959cfcd]Movido de Delphi para Interbase/Firebird[/color:4ee959cfcd]


Helio Nascimento

Helio Nascimento

Responder

Posts

11/02/2006

Aroldo Zanela

Colega,

Retire a vírgula:

SubString(coluna from 1 for 5)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar