PDA

Ver la Versión Completa : error en la funcion Right en firebird


uper
06-05-2013, 18:06:05
Buenos dias, como se puede usar la funcion right en firebird ya que estoy recortando los ultimos 6 caracteres de una cadena definida como varchar, estoy usando el Database Workbench V4 y lanzo la sentencia de este modo:
select p.folio,RIGHT(TRIM(p.descripcion), 6) as Code, p.descripcion, p.cantidad from pedidos p o bien asi
select p.folio,(RIGHT(TRIM(p.descripcion), 6)) as Code, p.descripcion, p.cantidad from pedidos p
me da el siguiente error: Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 18 RIGHT

Uso la version de firebird 2.0 pero no creo que eso sea. Entonces cual es la correcta forma de usar esta funcion, consulte la sintaxis y es correcta, entonces como es.
Alguna manera de emplear la funcion Right y lo mismo con la funcion left

GRacias

TOPX
06-05-2013, 18:19:16
Buenos días,

En http://www.firebirdsql.org/refdocs/langrefupd21-intfunc-right.html dice que esa función está a partir de la versión 2.1 (y ojalá > 2.1.4).

Fíjese que marcó el código Sql con etiquetas de código Php, y dejó el mensaje de error dentro del código.

-

uper
06-05-2013, 19:01:29
ok, busque el servidor en la pagina http://www.firebirdsql.org/en/firebird-2-0-7/ sabiendo que ya esta la version 2.5 disponible pero leyendo un poco de firebird encontre que me actualize las dll para conectarme y otras chunches, pero como tengo una base que problamente este creada en la version 2.x o 2.1 pues entonces descarge la version 2.0.7 y en esa estoy agregando demas catalogos de tablas y usandola.

La pregunta es, puedo adjuntar una base de version inferior a la version 2.1.5

Acabo de revisar que esta disponible tambien la version Firebird 2.1.5 lo mas probable es actualizar el firebird

gracias

TOPX
06-05-2013, 19:27:46
La pregunta es, puedo adjuntar una base de version inferior a la version 2.1.5

Sí. Pero lo mejor es restaurar el backup de su base de datos en la versión que vaya a utilizar, de manera que quede "actualizada".

-

ecfisa
06-05-2013, 20:12:52
Hola upper.

Con esta consulta creo que podrías lograr el efecto equivalente a RIGHT con funciones soportadas por la versión 2.0:

SELECT FOLIO,
IIF (CHAR_LENGTH(TRIM(P.DESCRIPCION)) > 6,
SUBSTRING(TRIM(P.DESCRIPCION) FROM CHAR_LENGTH(TRIM(P.DESCRIPCION))-5 FOR 6),
SUBSTRING(TRIM(P.DESCRIPCION) FROM 1 FOR 6)) AS CODE
FROM PEDIDOS P

Pero pudiendo, definitivamente no veo motivos para no migrar a la versión 2.5

Saludos. :)