Search Postgresql Archives

[General] Using cursors...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi everybody, thanks for your answers about hardware requirements. DB design was succesful and now we are migrating stored procedures from oracle to PostgreSQL. I can't handle cursors very well in PostgreSQL, for example, i need to migrate this stored procedure:

CREATE OR REPLACE PROCEDURE LOAD_EXP  AS
 cursor c_exp IS
	select C_COD_PRE from temp_codpre;
BEGIN
  for cur1 in c_exp loop
     update lcmap_ctrcre
     set v_cod_pcar = '07'
     where c_num_exp = cur1.C_COD_PRE;
     commit;
  end loop;
end LOAD_EXP;
/

and what i did in PostgreSQL was:

CREATE OR REPLACE FUNCTION LOAD_EXP() RETURNS VOID AS $$
DECLARE
 c_exp refcursor;
BEGIN
	open c_exp for select C_COD_PRE from temp_codpre;
	loop
	  FETCH c_exp INTO VARIABLE
	  IF NOT FOUND THEN
		EXIT;
	  END IF;
	  update lcmap_ctrcre
	  set v_cod_pcar = '07'
	  where c_num_exp = cur1.C_COD_PRE;
         end loop;
	close c_exp;
END;
$$ LANGUAGE plpgsql;
select LOAD_EXP()

My really big doubt is about what VARIABLE must be and if this function is efficient how is it written.
I'll appreciate any advice.
Rafael

_________________________________________________________________
Acepta el reto MSN Premium: Correos más divertidos con fotos y textos increíbles en MSN Premium. Descárgalo y pruébalo 2 meses gratis. http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_correosmasdivertidos


---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux