¾�ΥС�������ʸ�� �� 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

39.2. PL/pgSQL��

PL/pgSQL�ϥ֥��å���¤�θ���Ǥ��� �ؿ�����Υƥ��������Τ��֥��å��Ǥʤ���Фʤ�ޤ��� �֥��å��ϰʲ��Τ褦���������ޤ���

[ <<label>> ]
[ DECLARE
    declarations ]
BEGIN
    statements
END [ label ];

�֥��å���������ʸ�Ϥ��줾�졢���ߥ�����ǽ����ޤ��� ��˼������褦�ˡ�¾�Υ֥��å���˽и�����֥��å���END�θ�ˤϥ��ߥ�����ɬ�פǤ������ؿ����Τ򴰷뤹��Ǹ��END�ˤ����פǤ���

ティップ: BEGIN��ľ��˥��ߥ������񤯤��Ȥ⡢Ʊ���褦�˴ְ㤤�Ǥ��� ����������Ǥ��ꡢ��ʸ���顼�Ȥʤ�ޤ���

label��ɬ�פȤʤ�Τϡ�EXITʸ�����Ѥ����֥��å������ꤷ������硢�ޤ��ϥ֥��å����������줿�ѿ�̾�򽤾��������������Ǥ��� END�θ�˥�٥�����֤�����ϡ����Υ֥��å�����Ƭ��٥�Ȱ��פ����ʤ���Фʤ�ޤ���

���ƤΥ�����ɤ���ʸ���Ⱦ�ʸ������̤��ޤ��� ���̻Ҥ���Ű�����Ǥ������Ƥ��ʤ��¤ꡢ�̾��SQL���ޥ�ɤ�Ʊ�ͤˡ�����Ū�˾�ʸ�����Ѵ�����ޤ���

PL/pgSQL��������Ǥϡ��̾��SQL��Ʊ����ˡ�Υ����Ȥ�ư��ޤ��� ��ŤΥ��å���(--)�Ϥ��ι����ޤǤ򥳥��ȤȤ��륳���Ȥ򳫻Ϥ��ޤ��� /*�ϥ����ȥ֥��å��λϤޤ���̣��������*/�������ޤǤ򥳥��ȤȤ��ޤ��� �֥��å������Ȥ�����Ҥˤʤ�ޤ���

�֥��å���ʸ��������Ƥ�ʸ�����֥��å��ˤʤ뤳�Ȥ��Ǥ��ޤ��� ���֥��å�������Ū�ʥ��롼��ʬ�����ѿ���ʸ�ξ����ʽ��ޤ�˶ɽ경����Τ˻��ѤǤ��ޤ��� ���֥��å��ˤ�����������줿�ѿ��ϡ����֥��å������Ǥϳ�¦�Υ֥��å��ˤ�����Ʊ̾���ѿ�����ä��ޤ�������¦�Υ�٥���ѿ�̾���ղä��ƻ��ꤹ��Х��������Ǥ��ޤ��� �ʲ�����򼨤��ޤ���

CREATE FUNCTION somefunc() RETURNS integer AS $$
DECLARE
    quantity integer := 30;
BEGIN
    RAISE NOTICE 'Quantity here is %', quantity;  -- Quantity here is 30��ɽ��
    quantity := 50;
    --
    -- ���֥��å��κ���
    --
    DECLARE
        quantity integer := 80;
    BEGIN
	RAISE NOTICE 'Quantity here is %', quantity;  -- Quantity here is 80��ɽ��
    END;
    RAISE NOTICE 'Quantity here is %', quantity;  -- Quantity here is 50��ɽ��

    RETURN quantity;
END;
$$ LANGUAGE plpgsql;

注意: PL/pgSQL�ؿ������Τ�Ϥࡢ���줿"��¦�Υ֥��å�"��¸�ߤ��ޤ��� ���α��줿�֥��å��ˤ����ơ��ؿ��Υѥ�᡼�������������򤷤ơ�Ʊ�ͤ�FOUND�Τ褦���ü���ѿ���項39.5.5�򻲾ȡˤ��󶡤��ޤ��� ���γ�¦�Υ֥��å��Υ�٥�ϴؿ�̾�Ȥʤ�ޤ��� �Ĥޤ�ѥ�᡼�����ü���ѿ��ϴؿ�̾�ˤ�äƽ������뤳�Ȥ��̣���ޤ���

PL/pgSQL�ˤ�����ʸ��ޤȤ�뤿���BEGIN/END�ȥȥ�󥶥�����������Ѥ�Ʊ̾��SQL���ޥ�ɤȤ���㤨�ʤ��褦�ˤ��뤳�Ȥ����פǤ��� PL/pgSQL��BEGIN/END��ñ�ˤޤȤ�뤿��Τ�Τǡ��ȥ�󥶥�������Ϥ᤿�꽪��餻���ꤷ�ޤ��� �ؿ��ȥȥꥬ�ץ���������Ͼ�˳�¦���䤤��碌�dz�Ω���줿�ȥ�󥶥���������¦�Ǽ¹Ԥ���ޤ��� �ȥ�󥶥������μ¹Ԥ�����ʸ̮�Ϥ���ޤ���Τǡ������ϥȥ�󥶥������򳫻Ϥ��뤳�Ȥ⥳�ߥåȤ��뤳�Ȥ�Ǥ��ޤ��� ��������EXCEPTION���ޤ�֥��å��ϳ�¦�Υȥ�󥶥������˱ƶ����ʤ��ǥ�����Хå��Ǥ��륵�֥ȥ�󥶥������򡢼¼�Ū�˺����Ǥ��ޤ��� ����ˤĤ��Ƥ�項39.6.6�򻲾Ȥ��Ƥ���������