DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
DECLARE��Ȥ��ȡ�������䤤��碌�η�̤�����٤˾����ιԤ���Ф���ǽ�Ǥ��륫�����뤬���ѤǤ���褦�ˤʤ�ޤ��� �����������������塢FETCH����Ѥ��ƹԤ���Ф��ޤ���
注意: ���Υޥ˥奢��ڡ����Ǥ�SQL���ޥ�ɥ�٥�ǤΥ�������λ�����ˡ�ˤĤ����������ޤ��� PL/pgSQL��ǥ����������Ѥ���Ĥ��Ǥ���С���§���ۤʤ�ޤ��Τǡ�項39.7�Ȥ��Ƥ���������
��������륫�������̾���Ǥ���
��������ˤ��ǡ����μ��������ƥ����ȷ����ǤϤʤ��Х��ʥ�����ˤʤ�ޤ���
�������뤫����Ф��줿�ǡ�������������������������˹Ԥ�줿�ظ�ˤ���ơ��֥�ι����αƶ�������ʤ����Ȥ��ޤ��� �������������PostgreSQL�Υǥե���Ȥ�ư��Ǥ��� �������äơ����Υ�����ɤ���Ѥ��Ƥ���̤Ϥʤ������Υ�����ɤ�ɸ��SQL�Ȥθߴ������ݻ����뤿���¸�ߤ��Ƥ��ޤ���
SCROLL�ϡ����Υ������뤫���̾�ν���̤�Ǥʤ���ˡ�ǡ��㤨�и�������˹Ԥ���в�ǽ�Ǥ��뤳�Ȥ���ꤷ�ޤ��� �䤤��碌�μ¹Էײ褬ʣ���ˤʤ�ȡ�SCROLL�λ���ˤ�ä��䤤��碌�μ¹Ի��֤����礹���ǽ��������ޤ��� NO SCROLL�ϡ����Υ������뤫�����̤�Ǥʤ���ˡ�ǤϹԤ���Ф��ʤ����Ȥ���ꤷ�ޤ��� �ǥե���ȤǤϡ������Ĥ��ξ��ǥ����������ǽ�Ǥ��� �����SCROLL�λ����Ʊ���ǤϤ���ޤ��� �ܺ٤������Ȥ��Ƥ���������
WITH HOLD�ϡ�������������������ȥ�����������˥��ߥåȽ�����Ԥä���⡢���Υ�������λ��Ѥ�³�����뤳�Ȥ���ꤷ�ޤ��� WITHOUT HOLD�ϡ�������������������ȥ�������γ����Ǥϡ����Υ����������ѤǤ��ʤ����Ȥ���ꤷ�ޤ��� WITH HOLD��WITHOUT HOLD����ꤵ��ʤ���硢WITHOUT HOLD���ǥե���ȤȤʤ�ޤ���
BINARY��INSENSITIVE��SCROLL������ɤ�Ǥ�դν��֤ǻ��ꤹ�뤳�Ȥ��Ǥ��ޤ���
�̾�Υ�������ϡ�SELECT�ν��Ϥ�Ʊ���ƥ����ȷ����ǥǡ������֤��ޤ��� BINARY�ϡ��������뤬�Х��ʥ�����ǥǡ������֤��ʤ���Фʤ�ʤ����Ȥ��ޤ��� ����ˤ�ꥵ���С����饤����Ȥ�ξ�����Ѵ��˴ؤ����Ȥ�ʤ����Ȥ��Ǥ��ޤ������ץ�åȥե�����˰�¸����Х��ʥ�ǡ���������Υץ�����ޤκ�Ȥ��礭���ʤ�ޤ��� �㤨�С��䤤��碌�����������ͤȤ���1���֤���硢�ǥե���ȤΥ������뤫���1�Ȥ���ʸ�����������뤳�Ȥˤʤ�ޤ������Х��ʥ�����Υ������뤫��ϡ�����ɽ����Ȥä�4�Х��Ȥ��ͤ�������뤳�Ȥˤʤ�ޤ��ʥХ��ȥ������ϥӥå�����ǥ�����ˡ�
�Х��ʥ�����Υ�����������դ��ƻȤ�ʤ���Фʤ�ޤ��� psql�ʤɤ�¿���Υ��ץꥱ�������ϡ��ǡ����ϥƥ����ȷ������֤�����ΤȤߤʤ��Ƥ��ꡢ�Х��ʥ�����Υ�����������Ȥ��Ǥ��ޤ���
注意: ���饤����ȥ��ץꥱ�������"��ĥ�䤤��碌"�ץ��ȥ������Ѥ���FETCH���ޥ�ɤ�ȯ�Ԥ����硢�ƥ����ȷ����ȥХ��ʥ�����Τɤ���ǥǡ�����������Τ��ϡ��Х���ɥץ��ȥ����å������ǻ��ꤷ�ޤ��� ��������ϡ�������������Ǥλ�������ޤ��� ���ƤΥ��������ƥ����ȷ���/�Х��ʥ�����Τɤ���Ǥⰷ�����Ȥ��Ǥ����ĥ�䤤��碌�ץ��ȥ���Ǥϡ��Х��ʥꥫ������Ȥ�����ǰ�ϵ켰�ʤ�ΤǤ���
WITH HOLD�����ꤵ��ʤ���С����Υ��ޥ�ɤ���������륫������ϸ��ߤΥȥ����������ǤΤ��Ѥ��뤳�Ȥ��Ǥ��ޤ��� �������äơ�WITH HOLD�Τʤ�DECLARE�ϥȥ�������֥��å��γ�¦�Ǥϰ�̣������ޤ��� ���ξ�硢��������Ϥ���ʸ����λ����ޤǤΤ�ͭ���Ǥ��� ���Τ��ᡢPostgreSQL�ϥȥ�������֥��å��γ����Ǥ����������ޥ�ɤ����Ѥ��줿��票�顼����𤷤ޤ��� �ȥ�������֥��å����������ˤϡ�BEGIN��COMMIT�ʤޤ���ROLLBACK�ˤ���Ѥ��Ƥ���������
WITH HOLD�����ꤵ�줿��硢�����������������ȥ�������Υ��ߥåȤ��������Ƥ��Ƥ⡢Ʊ�쥻�å������Τ��θ�Υȥ������餽�Υ�������˥����������뤳�Ȥ��Ǥ��ޤ� �ʤ��������ȥ��������ܡ��Ȥ��줿��硢���Υ�������Ϻ������ޤ��ˡ� WITH HOLD�դ��Ǻ������줿��������ϡ����Υ���������Ф�������Ū��CLOSE��ȯ�Ԥ��줿���䥻�å����λ���������Ĥ����ޤ��� ���ߤμ����Ǥϡ��ݻ����줿���������Ȥä�ɽ�����Ԥϡ����θ�Υȥ�������Ǥ����ѤǤ���褦�ˡ�����ե����뤫�����ΰ�˥��ԡ�����ޤ���
�䤤��碌��FOR UPDATE�ޤ���FOR SHARE��ޤ��硢WITH HOLD����ꤹ�뤳�ȤϤǤ��ޤ���
�������뤫��������˥ǡ�������Ф����ˤϡ�SCROLL���ץ�������ꤷ�ʤ���Фʤ�ޤ��� �����ɸ��SQL�Ǥ�ɬ�ܤȤʤäƤ��ޤ��� �������������ΥС������Ȥθߴ������ݻ����뤿��ˡ�PostgreSQL�Ǥϡ�����������䤤��碌�ײ褬ñ��Ǥ��ꡢ���Υ��ݡ��Ȥ�;�פʥ����С��إåɤ�ɬ�פʤ���硢 SCROLL�ʤ��Ǥ�������˥ǡ�������Ф����Ȥ��Ǥ��ޤ��� ��������SCROLL���դ��ʤ��Ƥ�������˥ǡ��������Ф��뤳�Ȥ����Ѥ��ƥ��ץꥱ��������ȯ����ΤϤ����ᤷ�ޤ��� NO SCROLL����ꤷ�����ϡ��ɤΤ褦�ʾ��Ǥ�������˼��Ф����ȤϤǤ��ޤ���
�ޤ����䤤��碌��FOR UPDATE�ޤ���FOR SHARE��ޤ���ϡ��������μ��Ф��ϵ�����ޤ��� ���Τ��ᤳ�ξ���SCROLL����ꤹ�뤳�ȤϤǤ��ޤ���
注意 |
�����������ǽ��WITH HOLD�������뤬��ȯ�ؿ���項35.6���ȡˤ�ޤ��硢���ꤷ�ʤ���̤�⤿�餹��ǽ��������ޤ��� ����ޤǼ��Ф����Ԥ���ټ��Ф��������ؿ��ϺƼ¹Ԥ�����ǽ�������ꡢ���ξ�礪���餯���Ȱۤʤ��̤�⤿�餷�ޤ��� ������������β�����ˡ��1�ĤȤ��ơ����������WITH HOLD����������������鲿���Ԥ��ɤ�����˥ȥ�������ߥåȤ��뤳�Ȥ�����ޤ��� ����ˤ�궯��Ū�˥�������ν������Τ�����ΰ�˶����졢��ȯ�ؿ��ϳƹԤ��Ф���1�٤����¹Ԥ���ʤ��ʤ�ޤ��� |
�䤤��碌��FOR UPDATE�ޤ���FOR SHARE��ޤ��硢�̾�Τ��Υ��ץ��������SELECT���ޥ�ɤ�Ʊ�͡��֤����Ԥϼ��Ф��������ǥ��å�����ޤ��� ����ˡ��֤����ԤϤ�äȤ�ǿ��ΥС������ˤʤ�ޤ��� �������äơ����Υ��ץ����ϡ�ɸ��SQL��"���ƥ��֥�������"�ȸƤФ���Τ�Ʊ����ǽ�����ޤ��� ��INSENSITIVE��FOR UPDATE�ޤ���FOR SHARE�Ȥ��ä���˻��ꤹ��ȥ��顼�ˤʤ�ޤ�����
注意 |
���������UPDATE ... WHERE CURRENT OF�ޤ���DELETE ... WHERE CURRENT OF�ǻ��Ѥ���Ĥ��ʤ�С�FOR UPDATE�λ��Ѥ��̾ﴫ��ޤ��� FOR UPDATE����Ѥ��뤳�Ȥǡ����Ф��椪��ӹ������¾�Υ��å���Ԥ��ѹ����뤳�Ȥ��ɻߤ��ޤ��� FOR UPDATE���ʤ���С��������������˹Ԥ��ѹ����줿���˸�˹Ԥ�WHERE CURRENT OF���ޥ�ɤϸ��̤��ʤ��ʤ�ޤ��� FOR UPDATE����Ѥ���¾����ͳ�ϡ�"��ñ�˹�����ǽ"�ˤ��뤿��˥��������䤤��碌��ɸ��SQL�˹��ʤ����ʶ���Ū�ˤϥ��������1�ĤΥơ��֥�ΤߤȤ��ʤ���Фʤ餺���ޤ������롼�ײ���ORDER BY����Ѥ��ƤϤʤ�ʤ��ˡ����줬�ʤ��ȸ�˼¹Ԥ����WHERE CURRENT OF�����Ԥ��뤫�⤷��ʤ����ȤǤ��� �ײ�����ξܺ٤ˤ�äƤϡ���ñ�˹�����ǽ�Ǥʤ����������ư��뤫�⤷��ޤ���ư��ʤ����⤷��ޤ��� ���Τ���ǰ��ξ�硢���ץꥱ�������ϻ����ư��뤬�����ѻ��˼��Ԥ��뤫�⤷��ޤ��� FOR UPDATE��WHERE CURRENT OF�Ȥ��ä���˻��Ѥ��ʤ��礭����ͳ�ϡ�����������������ǽ�ˤ���ɬ�פ����롢�ޤ��ϸ�ι����αƶ�������ʤ��褦�ˤ���ʤĤޤ�Ť��ǡ�����ɽ����³����褦�ˤ����ɬ�פ�������Τ���Ǥ��� ���줬ɬ�פʤ�С��嵭�ηٹ�˽�ʬ���դ��Ƥ��������� |
ɸ��SQL�Ǥϡ��Ȥ߹���SQL�ˤ����륫������Τߤ����ꤵ��Ƥ��ޤ��� PostgreSQL�����Фϥ��������Ѥ�OPENʸ��������Ƥ��ޤ��� ���������������줿���˳�������ΤȤߤʤ���Ƥ��ޤ��� ��������PostgreSQL�Ѥ�������SQL�ץ�ץ����å��Ǥ���ECPG�Ǥϡ�DECLARE��OPENʸ�ʤɤ�ޤᡢɸ��SQL�Υ������뵬��ݡ��Ȥ��Ƥ��ޤ���
pg_cursors�����ƥ�ӥ塼���䤤��碌�뤳�Ȥǡ����Ѳ�ǽ�ʤ��٤ƤΥ���������ǧ���뤳�Ȥ��Ǥ��ޤ���
���������������ޤ���
DECLARE liahona CURSOR FOR SELECT * FROM films;
����������ѤΤ��¿������ˤĤ��Ƥ�FETCH�Ȥ��Ƥ���������
ɸ��SQL�Ǥϡ��ǥե���Ȥǥ������뤬�ظ�ˤ���ǡ�����Ʊ���¹Թ����Ť��ʤ���Фʤ�ʤ����ɤ����ϼ�����¸�Ǥ���ȽҤ٤Ƥ��ޤ��� PostgreSQL�Υ�������ϥǥե���ȤǤϵ��Ť�����FOR UPDATE����ꤹ�뤳�Ȥǵ��Ť����Ȥ��Ǥ��ޤ��� ¾�����ʤǤϰۤʤ�ư��뤫�⤷��ޤ���
ɸ��SQL�Ǥϡ����������������SQL��ȥ⥸�塼����ǤΤ��ѤǤ��ޤ��� PostgreSQL�Ǥϡ����ü��˥��������Ȥ����Ȥ��Ǥ��ޤ���
�Х��ʥꥫ�������PostgreSQL�γ�ĥ�Ǥ���