�䤤��碌���Τ���٤˼¹Ԥ���ΤǤϤʤ����������� �����ꤷ�ơ��䤤��碌�ץ��벽�����䤤��碌�η�̤���٤˿��ԤŤ��ɤߤȤ뤳�Ȥ��Ǥ��ޤ��������Ԥ���ͳ��1�Ĥϡ�������¿���ιԤ�������Υ���θϳ���ɤ����ȤǤ�(��������PL/pgSQL �桼�����̾盧����ۤ���ɬ�פϤ���ޤ���FOR �롼�פϼ�ưŪ�˥������������Ū�˻��Ѥ��ƥ����������ɤ�����Ǥ�)����궽̣������ǽ���ϡ��ؿ������ƤӽФ������Ԥ��ɤߤȤ뤳�Ȥ��Ǥ���褦�����ꤹ�륫������λ��Ȥ��֤����Ȥ��Ǥ��뤳�ȤǤ�������ϡ��ؿ�����Խ�����֤���ˡ��1�Ĥ����ޤ���
PL/pgSQL �ˤ��������ƤΥ�������ؤΥ��������ϥ��������ѿ����ͳ���ޤ������������ѿ��Ͼ���ü�� refcursor �ǡ������Ǥ������������ѿ����������1�Ĥ���ˡ�ϡ�ñ�� refcursor �����ѿ��Ȥ���������뤳�ȤǤ���¾����ˡ�ϡ��������������ʸ����Ѥ��뤳�ȤǤ�������ϰ���Ū�ˤϰʲ��Τ褦�ʤ�ΤǤ�(Oracle �Ȥθߴ����Τ��ᡢFOR �� IS ���֤������뤳�Ȥ��Ǥ��ޤ�)��
name CURSOR [ ( arguments ) ] FOR select_query ;
arguments �Ϥ⤷����С� name �� datatype ���Ȥ߹�碌��ޤǶ��ڤä��ꥹ�Ȥǡ�Ϳ����줿�䤤��碌��Υѥ����ͤȤ����ִ������̾����������ޤ�������̾���˼ºݤ�����������ͤϡ��������������������˻��ꤵ��ޤ���
�ʲ�������ޤ���
DECLARE curs1 refcursor; curs2 CURSOR FOR SELECT * from tenk1; curs3 CURSOR (key int) IS SELECT * from tenk1 where unique1 = key;
�����3�Ĥ��ѿ��Ϥ��٤� refcursor �ǡ�����������ޤ������ǽ�Τ�Τ����Ƥ��䤤��碌�˻��ѤǤ���2���ܤϴ������䤤��碌������ �Х���ɤ����(��ӤĤ�����) ���ޤ����ޤ����Ǹ�Τ�Τϡ��ѥ����դ����䤤��碌����ӤĤ����Ƥ��ޤ�(key �ϥ������뤬���������������ѥ����ͤ��֤��������ޤ�)�� curs1 �ѿ��ϡ�������䤤��碌�˷�ӤĤ����Ƥ��ޤ���Τǡ�����Х�����Ǥ���ȸƤФ�ޤ���
�����������Ѥ��ƹԤ���Ф����ˡ��������ɬ�פ�����ޤ�(����� DECLARE CURSOR SQL���ޥ�ɤ�ư���Ʊ���Ǥ�)��PL/pgSQL �ˤ� 4 ����� OPEN ʸ�����ꡢ��2�Ĥϥ���Х���ɥ��������ѿ�����ѡ��Ĥ�2�ĤϥХ���ɥ��������ѿ�����Ѥ��뤿��Τ�ΤǤ���
OPEN unbound-cursor FOR SELECT ...;
���������ѿ��ϳ����졢�¹Ԥ���褦���ꤷ���䤤��碌����Ϳ����ޤ������˳�����������������ȤϤǤ������ޤ�������Х���ɥ�������Ȥ���(�Ĥޤꡢñ�ʤ� refcursor �ѿ��Ȥ���)�������Ƥ��ʤ���Фʤ�ޤ���SELECT �䤤��碌�ϡ�¾�� PL/pgSQL �� SELECT ��Ʊ�ͤ���ˡ�ǰ����ޤ���PL/pgSQL ���ѿ�̾���֤�������졢�䤤��碌�ײ�Ϻ����ѤǤ���褦�˥���å��夵��ޤ���
OPEN curs1 FOR SELECT * FROM foo WHERE key = mykey;
OPEN unbound-cursor FOR EXECUTE query-string;
���������ѿ��ϳ����졢�¹Ԥ���褦���ꤷ���䤤��碌����Ϳ����ޤ������˳�����������������ȤϤǤ������ޤ�������Х���ɥ�������Ȥ���(�Ĥޤꡢñ�ʤ� refcursor �ѿ��Ȥ���)�������Ƥ��ʤ���Фʤ�ޤ����䤤��碌�ϡ�EXECUTE ���ޥ�ɤ�Ʊ����ˡ�ˤ��ʸ���Ȥ��ƻ��ꤵ��ޤ����̾����ϡ�����˼¹Ԥ����䤤��碌���Ѳ������䤤��碌��Ԥ����˽�������Ϳ���ޤ���
OPEN curs1 FOR EXECUTE ''SELECT * FROM '' || quote_ident($1);
OPEN bound-cursor [ ( argument_values ) ];
��������䤤��碌����ӤĤ����륫�������ѿ�������˻��Ѥ���� OPEN �η����Ǥ������˳�����������������ȤϤǤ��ޤ��°�����ɾ�����ϥ������뤬������Ȥ��Τ�������줿���ˤΤ߸���ޤ��������ͤ��䤤��碌������֤��������ޤ����Х���ɥ���������䤤��碌�ײ�Ͼ�˥���å����ǽ�Ȥߤʤ���ޤ������ξ��������� EXECUTE �Ϥ���ޤ���
OPEN curs2; OPEN curs3(42);
����������Ƥ��顢��������������ʸ����Ѥ��ƥ�����������Ȥ��Ǥ��ޤ���
���������ϡ���������Ϥ��뤿��˳��������δؿ���ǹԤ�ɬ�פϤ���ޤ��ؿ����� refcursor �ͤ��֤����ƤӽФ����Ǥ��Υ�������������뤳�Ȥ�Ǥ��ޤ�(����Ū�ˤ�refcursor�ͤϡ���������ؤ�ͭ�����䤤��碌����ĥݡ�����(����)��̾����ñ�ʤ�ʸ����Ǥ�������̾���ϡ��ݡ������������Ȥʤ���¾��refcursor�����ѿ����������뤳�Ȥǡ�¾���Ϥ����Ȥ��Ǥ��ޤ�)��
���ƤΥݡ�����ϰ���Ū�˥ȥ�������ν�����Ĥ�����ޤ������äơ�refcursor �ͤϤ��Υȥ�������ν���ޤǤδ֤Τ߳�������������ؤλ��ȤȤ���ͭ���Ǥ���
FETCH cursor INTO target;
FETCH �ϥ������뤫�鼡�ιԤ���Ф���SELECT INTO �Τ褦���оݤ˳�Ǽ���ޤ����оݤȤϡ����ѿ����ޤ��ϥ쥳�����ѿ������뤤�ϡ�ñ����ѿ���ޤǶ��ڤä��ꥹ�ȤǤ���SELECT INTO �ξ���Ʊ�͡��ü�� FOUND �ѿ������뤳�Ȥǡ��Ԥ�����Ǥ������ɤ������ǧ���뤳�Ȥ��Ǥ��ޤ���
FETCH curs1 INTO rowvar; FETCH curs2 INTO foo,bar,baz;
CLOSE cursor;
CLOSE �ϥݡ�������ظ�Υ���������Ĥ��ޤ����������Ѥ��ƥȥ�������ν���������˥������������뤳�Ȥ��Ǥ����ޤ������������ѿ�������������ٳ������Ȥ��Ǥ��ޤ���
CLOSE curs1;