• Lunes 18 de Noviembre de 2024, 19:25

Autor Tema:  CURSOR CON INSERT  (Leído 1453 veces)

krsg

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
CURSOR CON INSERT
« en: Jueves 7 de Julio de 2011, 17:19 »
0
Hola a todos!! tengo un problema quiero crear un cursor que seleccione de mi tabla Temp_orders aquellas filas que tengan el campo state='F'
despues deseo recorrer el cursor fila por fila e insertar cada fila en una tabla Layers pero no me funciona ell codigo q les dejo abajo.... que esta mal??

Gracias de antemano

Código: SQL
  1.  
  2. CREATE OR REPLACE FUNCTION sp_test() RETURNS VOID AS
  3. $BODY$
  4.     DECLARE
  5.     or_nbr VARCHAR(36) ;
  6.     symb VARCHAR(16);
  7.     or_action VARCHAR(2);
  8.     shar INT;
  9.     price NUMERIC(13,6);
  10.     st CHAR(1);
  11.     event_tim VARCHAR(30);
  12.     tra_id VARCHAR(16);
  13.     market VARCHAR(10);  
  14.     cursX CURSOR FOR SELECT * FROM Temp_orders WHERE state='F';
  15. BEGIN
  16.     OPEN cursX ;
  17.     Loop
  18.         FETCH cursX INTO or_nbr,symb,or_action,shar, price, st, event_tim, tra_id, market;    
  19.         INSERT INTO Layers(order_nbr,symbol,orden_action, shares,order_price,state ,event_time, trader_id, market_id)
  20.         VALUES (or_nbr,symb,or_action,shar, price, st, event_tim, tra_id, market) ;
  21.     END LOOP;
  22.     CLOSE cursX;
  23. END;
  24. $BODY$  LANGUAGE 'plpgsql' VOLATILE;
  25.  
  26. ALTER FUNCTION sp_test() OWNER TO postgres;
  27.  
  28. SELECT * FROM sp_test();
  29.