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 <nicolas...@gmail.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.marc...@gmail.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
>>
>
>

Responder a