Hola a todos.
Estoy creando un procedimiento almacenado en Interbase 7.5 y me encuentro con el siguiente problema:
Necesito generar una cadena de texto de un máximo de 160 caracteres. Generar la cadena no es problema, comprobar la longitud de la misma, tampoco, pero una vez que localizo que tiene más de 160 caracteres (cuando se da el caso), necesito "recortarla" a dicha longitud.
Mi idea era utilizar SUBSTR, pero está función solo soporta una cadena de 80 caracteres. Me pregunto si existe otra función que me permita tomar solo una parte de la cadena original, un equivalente al LeftStr de Delphi, por ejemplo.
Otra solución que me han propuesto es meterme en un bucle e ir copiando la cadena caracter a caracter, pero no me funciona:
Código SQL
[-]if (STRLEN(TEXTO) > 160) then
BEGIN
I = 1;
V_AUX = '';
WHILE (I <= 160) DO
BEGIN
V_AUX = V_AUX || TEXTO[i];
I = I + 1;
END
TEXTO = V_AUX;
END
Al compilar el procedimiento me indica "Invalid array reference", supongo que refiriendose a:
.
TEXTO está definida como VARCHAR de 160, quizá el problema esté ahí.
¿Alguien me puede dar una idea?
Muchas gracias, saludos a todos.