----------------------------------------------------------------
-- I ' ll use a bound cursor, bun when I execute following cursor
-- I met a error message within for loop
-- Help me...
----------------------------------------------------------------
CREATE OR REPLACE FUNCTION cursor_test(
          vp_param1               VARCHAR
         ,vp_param2               VARCHAR
)
RETURNS VARCHAR AS $BODY$
DECLARE
  p_param1                        VARCHAR;
  p_param1                        VARCHAR;
  cur_test CURSOR (c_param VARCHAR) IS
    SELECT col_1, col_2, col_3 FROM tab_1 WHERE col_1 = c_param;
  rec_test RECORD;
  v_count                            NUMERIC;
BEGIN
    p_param1        := nullif(vp_param1 , '');
    p_param2        := nullif(vp_param2 , '');
    IF p_param1 = 'txn' THEN
       -------------------------------------------------
       -- 커서처리
       -------------------------------------------------
       OPEN cur_test(p_param2);
       for rec_test in cur_test loop
         --FETCH cur_test INTO rec_test;
         SELECT count(*) INTO v_count FROM tab_2 WHERE col_1 = 
rec_test.col_1 and col_2 = rec_test.col_2 ;
         IF  v_count >0  THEN
           insert into tab_2
           (
             col_1
           , col_2
           , col_3
           )
           values
           (
             rec_test.col_1
           , rec_test.col_2
           , rec_test.col_3
           );
         END IF;
       end loop; -- cur_test  커서처리
       CLOSE cur_test;
    END IF;
    RETURN '처리완료';
END;
$BODY$ LANGUAGE plpgsql;