I'm writing a function which uses cursor and I have an error when executing it

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • osman7king
    New Member
    • Sep 2010
    • 61

    I'm writing a function which uses cursor and I have an error when executing it

    when executing the function as follow:
    select get_pms_meeting _minute (null)

    I get the follwing message:
    set-valued function called in context that cannot accept a set

    Code:
    CREATE TABLE pms_meeting_minutes
    (
      id_meeting_minutes integer NOT NULL,
      location character varying(50),
      date_meeting date,
      time_meeting time without time zone,
      responsible integer,
      name_meeting_minute character varying(50),
      CONSTRAINT pk_pms_meeting_minutes PRIMARY KEY (id_meeting_minutes));
    
    
    create function get_pms_meeting_minute (integer) RETURNS SETOF RECORD AS'
    
    DECLARE 
        ret_row RECORD;    
    
    BEGIN
        IF $1 IS NULL THEN
          FOR ret_row IN SELECT *
                         FROM pms_meeting_minutes
          LOOP
            RETURN NEXT ret_row;
          END LOOP;
        
        ELSE
           IF $1 IS NOT NULL THEN
             FOR ret_row IN SELECT  * 
                            FROM pms_meeting_minutes
                            WHERE id_meeting_minutes = $1
             LOOP
               RETURN QUERY;
             END LOOP;  
           END IF;
        END IF;
    END;'
    
    LANGUAGE 'plpgsql';
  • rski
    Recognized Expert Contributor
    • Dec 2006
    • 700

    #2
    Maybe try calling it like that
    Code:
    select * from get_pms_meeting_minute (null);

    Comment

    • osman7king
      New Member
      • Sep 2010
      • 61

      #3
      thanks a lot
      it works now.

      Comment

      Working...