PL/pgSQL en Postgre 8.2 (LINUX)

Arquitectura, Extending SQL, The Postgree Rule System, Intefacing, Trigers, ODBC, JDBC, C++...

PL/pgSQL en Postgre 8.2 (LINUX)

Notapor diegocai » Lun May 12, 2008 8:20 am

Tengo un problema con funciones que utilizan cursores.
Estoy intentando crear la siguiente función:

CREATE OR REPLACE FUNCTION f_buscarcau(codlocalidad integer)
RETURNS character varying AS
$BODY$
DECLARE
s_cau VARCHAR(5);
cau_cursor CURSOR FOR SELECT app_localidades.cau FROM app_localidades WHERE app_localidades.codlocalidad = $1;
BEGIN
OPEN cau_cursor;
FETCH NEXT FROM cau_cursor INTO s_cau;
CLOSE cau_cursor;

RETURN s_cau;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

Pero obtengo el siguiente resultado

ERROR: syntax error en o cerca de «NEXT»
LINE 9: FETCH NEXT FROM cau_cursor INTO s_cau;
^

********** Error **********

ERROR: syntax error en o cerca de «NEXT»
Estado SQL:42601
Caracter: 270

Esto ocurre cuando ejecuto esta consulta en mi instalación de Postgre en LINUX. La misma consulta en la misma base de datos pero en una instalación de Postgre en Windows funciona correctamente ¿?.

En ambas plataformas estoy usando PostgreSQL 8.2. En Windows uso MS Windows XP Pro SP2 y en Linux uso OpenSUSE 10.3 (x86_64).

La base de datos en las dos instalaciones tiene instalado el lenguaje PL/pgSQL. El asunto es que en Windows funciona y en Linux no. ¿A que puede deberse esto?

Muchas gracias de ante mano por cualquier ayuda que puedan darme.
Saludos!!
diegocai
Novato
Novato
 
Mensajes: 2
Registrado: Lun May 12, 2008 8:10 am


Re: PL/pgSQL en Postgre 8.2 (LINUX)

Notapor ivancp » Lun May 26, 2008 11:15 pm

Esto sucede frecuentemente en programas opensource que se hicieron inicialmente para linux o windows, me parece que debes utilizar una versión inferior ó la mas reciente sobre la plataforma que tienes problemas (linux) , por que me parece que el problema radica en la versión.

Si ya solucionaste el problema , cuentanos como te fue.
Imagen @latindev | Mi Blog
Por favor lee las reglas del foro
Avatar de Usuario
ivancp
Colaborador
Colaborador
 
Mensajes: 680
Registrado: Jue Sep 06, 2007 12:58 pm


Re: PL/pgSQL en Postgre 8.2 (LINUX)

Notapor diegocai » Mar May 27, 2008 6:58 am

Muchas gracias. Ya solucioné el problema. Simplemente cambié el código de la función. Donde decia "FETCH NEXT FROM cau_cursor INTO s_cau;" puse "FETCH cau_cursor INTO s_cau;". Es decir, saqué las palabras claves NEXT y FROM. No entiendo porqué pero funciona.
diegocai
Novato
Novato
 
Mensajes: 2
Registrado: Lun May 12, 2008 8:10 am


    

Volver a PostgreSQL

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado