Skip to content Skip to sidebar Skip to footer

Fetch Refcursor Into Temporary Table

I need fetch refcursor into temporary table. Each refcursor column should match appropriate table column + one key (enumerate) column should be in temp table. For example refcursor

Solution 1:

As a workaround I have done below

CREATE OR REPLACE FUNCTION FN_TEST() 
RETURNS VOID LANGUAGE plpgsql 
   AS $$ 
   DECLARE 
   V_CURS REFCURSOR; 
   V_Rec_CNAME VARCHAR(20); 
   V_Rec_CDAY VARCHAR(20); 
   ITER INTEGER; 
BEGIN 
   create temporary table if not exists TMP_TBL 
   ( 
  INDX INTEGER NOT NULL, 
  CNAME VARCHAR(20), 
  CDAY VARCHAR(20)
   ); 
   DELETE FROM TMP_TBL; 
  SELECT * FROM FN_RET_REFCURSOR() INTO V_CURS; 
  ITER := 1; 
   LOOP 
     FETCH V_CURS INTO V_Rec_CNAME, V_Rec_CDAY; 
     EXIT WHEN NOT FOUND; 
     INSERT INTO TMP_TBL VALUES (ITER, V_Rec_CNAME, V_Rec_CDAY); 
     ITER := ITER + 1; 
   END LOOP; 
  RETURN; 
END; $$; 

Post a Comment for "Fetch Refcursor Into Temporary Table"