¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

DECLARE

̾��

DECLARE -- ����������������

����

DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
    CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
    [ FOR { READ ONLY | UPDATE [ OF column [, ...] ] } ]

����

DECLARE��Ȥ��ȡ�������䤤��碌�η�̤�����٤˾����ιԤ���Ф���ǽ�Ǥ��륫�����뤬���ѤǤ���褦�ˤʤ�ޤ��� FETCH��Ȥ��ȡ��������뤫��ƥ����ȷ����ޤ��ϥХ��ʥ�����ǥǡ�������Ф����Ȥ��Ǥ��ޤ���

�̾�Υ�������ϡ�SELECT�ν��Ϥ�Ʊ���ƥ����ȷ����ǥǡ������֤��ޤ��� ���Υǡ����ϸ�ͭ�ΥХ��ʥ��������¸����Ƥ���Τǡ������ƥब�ƥ����ȷ������������뤿��˥ǡ������Ѵ�����ɬ�פ�����ޤ��� ���󤬥ƥ����ȷ������֤��줿�塢���饤����ȥ��ץꥱ�������¦�Ǿ����������뤿��˥Х��ʥ�������Ѵ����ʤ���Фʤ�ʤ����Ȥ�����ޤ��� �ޤ����ƥ����ȷ����ϡ��б�����Х��ʥ������ꥵ�������礭���ʤ꤬���Ǥ��� BINARY���������Ȥ��ȡ��ǡ�����Х��ʥ�ɽ���Τޤ��֤����Ȥ��Ǥ�����������������ñ�ˤʤ��ǽ��������ޤ��� ����Ǥ⡢�ǡ�����ƥ����ȤȤ���ɽ��������ϡ��ƥ����ȷ����ǥǡ�������Ф����Ȥˤ�ꡢ���饤�����¦�ν�����ڸ��Ǥ��ޤ���

�㤨�С��䤤��碌���������󤫤��ͤȤ���1���֤���硢�ǥե���ȤΥ������뤫���1�Ȥ���ʸ�����������뤳�Ȥˤʤ�ޤ������Х��ʥ�����Υ������뤫��ϡ�����ɽ����Ȥä�4�Х��Ȥ��ͤ�������뤳�Ȥˤʤ�ޤ��ʥХ��ȥ������ϥӥå�����ǥ�����ˡ�

�Х��ʥ�����Υ�����������դ��ƻȤ�ʤ���Фʤ�ޤ��� psql�ʤɤ�¿���Υ��ץꥱ�������ϡ��ǡ����ϥƥ����ȷ������֤�����ΤȤߤʤ��Ƥ��ꡢ�Х��ʥ�����Υ�������򰷤����Ȥ��Ǥ��ޤ���

����: ���饤����ȥ��ץꥱ�������"��ĥ�䤤��碌"�ץ��ȥ������Ѥ���FETCH���ޥ�ɤ�ȯ�Ԥ����硢�ƥ����ȷ����ȥХ��ʥ�����Τɤ���ǥǡ�����������Τ��ϡ��Х���ɥץ��ȥ����å������ǻ��ꤷ�ޤ��� ��������ϡ�������������Ǥλ�����񤭤��ޤ��� ���ƤΥ��������ƥ����ȷ���/�Х��ʥ�����Τɤ���Ǥⰷ�����Ȥ��Ǥ����ĥ�䤤��碌�ץ��ȥ���Ǥϡ��Х��ʥꥫ������γ�ǰ�ϥ��ݡ��Ȥ���Ƥ��ޤ���

�ѥ�᡼��

name

��������륫�������̾���Ǥ���

BINARY

��������ˤ��ǡ����μ��������ƥ����ȷ����ǤϤʤ��Х��ʥ�����ˤʤ�ޤ���

INSENSITIVE

�������뤬¸�ߤ���֡��������뤫����Ф��줿�ǡ������ظ�ˤ���ơ��֥�ι����αƶ�������ʤ����Ȥ򼨤��ޤ��� ��������PostgreSQL�Ǥϡ��ɤΤ褦�ʾ��Ǥ��äƤ⥫������Ϲ����αƶ�������ޤ��� �������äơ����Υ�����ɤ���Ѥ��Ƥ⸽�ߤΤȤ������̤Ϥ���ޤ��󡣤��Υ�����ɤϡ�ɸ��SQL�Ȥθߴ������ݻ����뤿���¸�ߤ��Ƥ��ޤ���

SCROLL
NO SCROLL

SCROLL�ϡ����Υ������뤫���̾�ν���̤�Ǥʤ���ˡ�ǡ��㤨�и�������˹Ԥ���Ф����Ȥ���ꤷ�ޤ��� �䤤��碌�μ¹Էײ褬ʣ���ˤʤ�ȡ�SCROLL�λ���ˤ�ä��䤤��碌�μ¹Ի��֤����礹���ǽ��������ޤ��� NO SCROLL�ϡ����Υ������뤫�����̤�Ǥʤ���ˡ�ǤϹԤ���Ф��ʤ����Ȥ���ꤷ�ޤ��� �ǥե���ȤǤϡ������Ĥ��ξ��ǥ����������ǽ�Ǥ��� �����SCROLL�λ����Ʊ���ǤϤ���ޤ��� �ܺ٤������򻲾Ȥ��Ƥ���������

WITH HOLD
WITHOUT HOLD

WITH HOLD�ϡ�������������������ȥ�󥶥����������˥��ߥåȽ�����Ԥä���⡢���Υ�������λ��Ѥ�³�����뤳�Ȥ���ꤷ�ޤ��� WITHOUT HOLD�ϡ�������������������ȥ�󥶥������γ����Ǥϡ����Υ����������ѤǤ��ʤ����Ȥ���ꤷ�ޤ��� WITH HOLD��WITHOUT HOLD����ꤵ��ʤ���硢WITHOUT HOLD���ǥե���ȤȤʤ�ޤ���

query

��������ˤ�ä��֤����Ԥ��󶡤���SELECT�ޤ���VALUES���ޥ�ɤǤ���

FOR READ ONLY
FOR UPDATE

FOR READ ONLY�ϡ��������뤬�ɤ߼�����ѥ⡼�ɤǻ��Ѥ���뤳�Ȥ򼨤��ޤ��� FOR UPDATE�ϡ��������뤬�ơ��֥�򹹿����뤿��˻��Ѥ���뤳�Ȥ򼨤��ޤ��� �������Ǥϡ�PostgreSQL�ϥ�������Ǥι����򥵥ݡ��Ȥ��Ƥ��ޤ��󡣤������äơ�FOR UPDATE����ꤹ��ȥ��顼��å�������ɽ������ޤ����ޤ���FOR READ ONLY����ꤷ�Ƥ���̤Ϥ���ޤ���

column

��������ˤ�äƹ�����������ʣ���ġˤǤ��� �������Ǥϡ�PostgreSQL�ϥ�������Ǥι����򥵥ݡ��Ȥ��Ƥ��ޤ��󡣤������äơ�FOR UPDATE�����ꤹ��ȥ��顼��å�������ɽ������ޤ���

BINARY��INSENSITIVE��SCROLL������ɤ�Ǥ�դν��֤ǻ��ꤹ�뤳�Ȥ��Ǥ��ޤ���

����

WITH HOLD�����ꤵ��ʤ���С����Υ��ޥ�ɤ���������륫������ϸ��ߤΥȥ�󥶥���������ǤΤ߻��Ѥ��뤳�Ȥ��Ǥ��ޤ��� �������äơ�WITH HOLD�Τʤ�DECLARE�ϥȥ�󥶥������֥��å��γ�¦�Ǥϰ�̣������ޤ��� ���ξ�硢��������Ϥ���ʸ����λ����ޤǤΤ�ͭ���Ǥ��� ���Τ��ᡢPostgreSQL�ϥȥ�󥶥������֥��å��γ����Ǥ��Υ��ޥ�ɤ����Ѥ��줿��票�顼����𤷤ޤ��� �ȥ�󥶥������֥��å����������ˤϡ�BEGIN��COMMIT��ROLLBACK����Ѥ��Ƥ���������

WITH HOLD�����ꤵ�줿��硢�����������������ȥ�󥶥������Υ��ߥåȤ��������Ƥ��Ƥ⡢Ʊ�쥻�å������Τ��θ�Υȥ�󥶥�����󤫤餽�Υ�������˥����������뤳�Ȥ��Ǥ��ޤ� �ʤ��������ȥ�󥶥�����󤬥��ܡ��Ȥ��줿��硢���Υ�������Ϻ������ޤ��ˡ� WITH HOLD�դ��Ǻ������줿��������ϡ����Υ���������Ф�������Ū��CLOSE��ȯ�Ԥ��줿���䥻�å���󤬽�λ���������Ĥ����ޤ��� ���ߤμ����Ǥϡ��ݻ����줿���������Ȥä�ɽ�����Ԥϡ����θ�Υȥ�󥶥������Ǥ����ѤǤ���褦�ˡ�����ե����뤫�����ΰ�˥��ԡ�����ޤ���

�������뤫��������˥ǡ�������Ф����ˤϡ�SCROLL���ץ�������ꤷ�ʤ���Фʤ�ޤ��� �����ɸ��SQL�Ǥ�ɬ�ܤȤʤäƤ��ޤ��� �������������ΥС������Ȥθߴ������ݻ����뤿��ˡ�PostgreSQL�Ǥϡ�����������䤤��碌�ײ褬ñ��Ǥ��ꡢ���Υ��ݡ��Ȥ�;�פʥ����С��إåɤ�ɬ�פʤ���硢 SCROLL�ʤ��Ǥ�������˥ǡ�������Ф����Ȥ��Ǥ��ޤ��� ��������SCROLL���դ��ʤ��Ƥ�������˥ǡ��������Ф��뤳�Ȥ����Ѥ��ƥ��ץꥱ��������ȯ����ΤϤ����ᤷ�ޤ��� NO SCROLL����ꤷ�����ϡ��ɤΤ褦�ʾ��Ǥ�������˼��Ф����ȤϤǤ��ޤ���

ɸ��SQL�Ǥϡ��Ȥ߹���SQL�ˤ����륫������Τߤ����ꤵ��Ƥ��ޤ��� PostgreSQL�����Фϥ��������Ѥ�OPENʸ��������Ƥ��ޤ��� ���������������줿���˳�������ΤȤߤʤ���Ƥ��ޤ��� ��������PostgreSQL�Ѥ�������SQL�ץ�ץ����å��Ǥ���ECPG�Ǥϡ�DECLARE��OPENʸ�ʤɤ�ޤᡢɸ��SQL�Υ������뵬��򥵥ݡ��Ȥ��Ƥ��ޤ���

pg_cursors�����ƥ�ӥ塼���䤤��碌�뤳�Ȥǡ����Ѳ�ǽ�ʤ��٤ƤΥ���������ǧ���뤳�Ȥ��Ǥ��ޤ���

��

���������������ޤ���

DECLARE liahona CURSOR FOR SELECT * FROM films;

����������ѤΤ��¿������ˤĤ��Ƥ�FETCH�򻲾Ȥ��Ƥ���������

�ߴ���

ɸ��SQL�Ǥϡ����������������SQL��ȥ⥸�塼����ǤΤ߻��ѤǤ��ޤ��� PostgreSQL�Ǥϡ����ü��˥��������Ȥ����Ȥ��Ǥ��ޤ���

ɸ��SQL�Ǥϡ����������Ȥäƥǡ����١����Υǡ����򹹿����뤳�Ȥ��Ǥ��ޤ��� ���Ƥ�PostgreSQL�Υ���������ɤ߼�����ѤǤ���

�Х��ʥꥫ�������PostgreSQL�γ�ĥ�Ǥ���

��Ϣ����

CLOSE, FETCH, MOVE