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
Assim está retornando ´Null´ o campo :x_data
Abaixo posto a UDF - SUBSTR
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]
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
Curtir tópico
+ 0
Responder
Posts
11/02/2006
Aroldo Zanela
Colega,
Retire a vírgula:
SubString(coluna from 1 for 5)
Retire a vírgula:
SubString(coluna from 1 for 5)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)