Função substring em stored procedure
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
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
Curtidas 0
Respostas
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
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
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
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+
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
12/09/2003
Obrigado pela dica!
Alterei os parametros de input/output para o tamanho que preciso e funcionou corretamente.
[]´s
Alterei os parametros de input/output para o tamanho que preciso e funcionou corretamente.
[]´s
GOSTEI 0