Please let me know what's wrong with below code

CREATE LANGUAGE plpgsql;
create or replace FUNCTION test_cu( p_cursor REFCURSOR) returns REFCURSOR
   AS $procedure$
BEGIN
   open p_cursor FOR
   select * from   test;

   RETURN p_cursor;
END; $procedure$
LANGUAGE plpgsql;

create or replace FUNCTION test_call()
RETURNS VOID
   AS $procedure$
   DECLARE
   c_cursor  REFCURSOR;
   r_emp  test%rowtype;
BEGIN
   PERFORM test_cu(c_cursor);
   loop
      fetch c_cursor into r_emp;
      exit when NOT FOUND;
      RAISE NOTICE '%',r_emp.aaa;
   end loop;
   close c_cursor;
   RETURN;
END; $procedure$
LANGUAGE plpgsql;


SELECT  test_call();

When I execute above code I got below error

ERROR:  cursor variable "c_cursor" is null
CONTEXT:  PL/pgSQL function "test_call" line 7 at FETCH

********** Error **********

ERROR: cursor variable "c_cursor" is null
SQL state: 22004
Context: PL/pgSQL function "test_call" line 7 at FETCH


Thanks,
Ravi Katkar




Reply via email to