Função substring em stored procedure

Firebird

12/09/2003

Estou tentando usar a funcao substring numa stored procedure, mas
ocorre um erro quando passo a posicao inicial com uma variavel.

...
if (substring(cLista from nCont for 4)<>´----´) then
...

O erro ocorre na variavel nCont como se ela nao existisse, mas ela ja
foi declarada e inicializada anteriormente:
...
declare variable nCont integer;
...
nCont = 1;
...

Erro:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 34, char 36.
nCont.

Se alguem puder me ajudar agradeco desde ja.


Romilson O. Alves
EPD/VR


Roa

Roa

Curtidas 0

Respostas

Fcampos

Fcampos

12/09/2003

tente usar essa, já usei em SP´s e funcionou 100¬

abra seu IbConsole--> e o Interactive SQL e execute esta função:

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

depois faça:

if (substr(cLista,Cont,4)<>´----´) then


GOSTEI 0
Roa

Roa

12/09/2003

Valeu pela dica, mas esta funcao tambem ja usei so que nao deu certo, pois o tamanho maximo do parametro que tenho que passar e 80 posicoes e o campo que estou usando tem 600 posicoes.


GOSTEI 0
Afarias

Afarias

12/09/2003

Apesar da função estar definida para 80 ´posições´, ela não se resume a valores com este tamanho, mas 32767.

Como descrito na documentação da UDF ::

Note: This function is NOT limited to
* receiving and returning only 80 characters,
*rather, it can use as long as 32767
* characters which is the limit on an
*INTERBASE character string.



T+


GOSTEI 0
Roa

Roa

12/09/2003

Obrigado pela dica!
Alterei os parametros de input/output para o tamanho que preciso e funcionou corretamente.

[]´s


GOSTEI 0
POSTAR