Ajudinha no Sql

Delphi

17/02/2004

Utilizo o interbase e tenho um campo com varchar de 500 e isso faz com q ele não apareça nos meus dbgrid. por isso quero fazer um sql q mostre apenas 60 caracteres do meu campo, ex.:

Isso funcionaria no Oracle, mas no Interbase não.
Alguém sabe como pegar apenas as primeiras letras do campo?

SELECT CD_CNAE,
substr(DS_CNAE,1,60), <- Este é meu campo grande
GR_RISCO
FROM CNAE

Agradeço muito a quem puder me ajudar


Thoor Cobain

Thoor Cobain

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

17/02/2004

No interbase (6.0) dá sim....
Você implementou esta função no EXTERNAL FUNCTIONS?


GOSTEI 0
Thoor Cobain

Thoor Cobain

17/02/2004

[quote:e7060792e3=´Lucas Alves Silva´]No interbase (6.0) dá sim....
Você implementou esta função no EXTERNAL FUNCTIONS?[/quote:e7060792e3]

Teste direto pelo interbase e acusou este erro:

Dynamic SQL Error
SQL error code = -804
Function unknown
SUBSTR
Statement: SELECT CD_CNAE,
substr(DS_CNAE,1,60) as DS_CNAE,
GR_RISCO
FROM CNAE


GOSTEI 0
Adilsond

Adilsond

17/02/2004

Em vez de:

substr(DS_CNAE,1,60) as DS_CNAE

experimente utilizar:

CAST(DS_CNAE AS CHAR(60)) as DS_CNAE
ou
SUBSTRING(DS_CNAE FROM 1 FOR 60) as DS_CNAE


GOSTEI 0
Thoor Cobain

Thoor Cobain

17/02/2004

Em vez de: substr(DS_CNAE,1,60) as DS_CNAE experimente utilizar: CAST(DS_CNAE AS CHAR(60)) as DS_CNAE ou SUBSTRING(DS_CNAE FROM 1 FOR 60) as DS_CNAE




Graaaaaaaaaaaaaaaaaande amigo, deu certo, eu estava precisando muito disto, obrigado !!! :mrgreen: :mrgreen: :mrgreen: :mrgreen:


GOSTEI 0
POSTAR