From: | Juan <smalltalker(dot)marcelo(at)gmail(dot)com> |
---|---|
To: | Nicolas Dominguez Florit <nicolasdom(at)gmail(dot)com> |
Cc: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: help con cursor |
Date: | 2012-11-14 18:42:33 |
Message-ID: | CAKizN9yuJKKsQYQCw7+uEocy6R5eFg_KxS659Lttuvu2RZrgDA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gente
Nicolas, le puse el fetch pero no compila!!!
aca esta la funcion con el comentario donde no compila
CREATE OR REPLACE FUNCTION update_or_insert_nacionalidades(cod text, nombre
text)
RETURNS void AS
$BODY$
declare cn cursor for SELECT * from nacionalidades where id_nacionalidad
= cod ;
BEGIN
open cn ;
FETCH count in cn ; /* ESTO NO COMPILA TIRA ERROR-> ERROR:
syntax error at or near ";"LINE 11: FETCH count in c_n ; */
if not FOUND then
/* no esta en nacionalidades */
RAISE NOTICE 'update_or_insert_nacionalidades --> INSERT ';
insert into nacionalidades( id_nacionalidad , nacionalidad ) values (
cod , nombre ) ;
else
RAISE NOTICE 'update_or_insert_nacionalidades --> UPDATE ';
update nacionalidades set nacionalidad = nombre where id_nacionalidad =
cod ;
end if ;
close c_nacionalidad;
RETURN ;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION update_or_insert_nacionalidades(text, text)
OWNER TO postgres;
cualquier idea sera agradecida.
salu2
jmdc
2012/11/14 Nicolas Dominguez Florit <nicolasdom(at)gmail(dot)com>
> Puede ser que lo que te falte sea hacer un FETCH luego del Open?
> Saludos,
> Nico.
>
>
> El 14 de noviembre de 2012 13:58, Juan <smalltalker(dot)marcelo(at)gmail(dot)com>escribió:
>
> Gente
>>
>>
>> Tengo un problema con un cursor, y tambien una duda
>> en el sig porcion de codigo , cod y nombre son text y son los parametros
>> de una funcion
>>
>> ..
>> declare c_nacionalidad refcursor ;
>> begin
>>
>> OPEN c_nacionalidad FOR execute 'SELECT * from nacionalidades where
>> id_nacionalidad = ' || quote_literal(cod ) ;
>> if not FOUND then
>> /* no esta en nacionalidades */
>> RAISE NOTICE 'update_or_insert_nacionalidades --> INSERT ';
>> insert into nacionalidades( id_nacionalidad , nacionalidad ) values (
>> cod , nombre ) ;
>> else
>> RAISE NOTICE 'update_or_insert_nacionalidades --> UPDATE ';
>> update nacionalidades set nacionalidad = nombre where id_nacionalidad
>> = cod ;
>> end if ;
>> end ;
>>
>>
>> el problema es con el not FOUND, no se si entendi mal, pero me da falso,
>> pero tengo una row con esa clave,
>> preg: luego de un open del cursor se afecta a la variable FOUND ????
>> donde encuentro esa documentacion, en verdad googleando no la encontre,
>> agradecere cualquier info ,
>> salu2
>> jmdc
>>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Nicolas Dominguez Florit | 2012-11-14 18:52:26 | Re: help con cursor |
Previous Message | Nicolas Dominguez Florit | 2012-11-14 17:46:17 | Re: help con cursor |