PL/pgSQL�dz�ȯ����1�Ĥ��ɤ���ˡ�ϡ��ؿ����������Τ˼�ʬ�ι����ʥƥ����ȥ��ǥ�����Ȥ����⤦1�ĤΥ�����ɥ���psql����Ѥ��ƴؿ����ɤ߹��ޤ��ƻ��Ԥ����ȤǤ��� ������ˡ�ǹԤ����ˤ�CREATE OR REPLACE FUNCTION����Ѥ��ƴؿ���������������ɤ��Ǥ��礦�� ������ˡ�ǥե��������ɤ߹��ߤ���ȡ��ؿ���������뤳�Ȥ��Ǥ��ޤ��� �㤨�С��ʲ��Τ褦�ˤ��ޤ���
CREATE OR REPLACE FUNCTION testfunc(integer) RETURNS integer AS $$ .... $$ LANGUAGE plpgsql;
psql��¹Ԥ����ʲ��Τ褦�˴ؿ�����ե�������ɤ߹��ߡ��ޤ��Ϻ��ɤ߹��ߤ��뤳�Ȥ��Ǥ��ޤ���
\i filename.sql
���θ夹���ˡ��ؿ������뤿���SQL���ޥ�ɤ�ȯ�Ԥ��뤳�Ȥ��Ǥ��ޤ���
PL/pgSQL�ˤ����볫ȯ�Τ⤦1�Ĥ��ɤ���ˡ�ϡ���³������γ�ȯ��ǽ�����GUI�ǡ����١������������ġ������Ѥ��뤳�ȤǤ��� ¾�ˤ⤢��ޤ�����pgAdmin�����������ġ���ΰ���Ǥ��� ���������ġ���ϡ�ñ�������������פ������ꡢ�ؿ��κ��ľ����ǥХå����ưפ˹Ԥ����ꤹ�������ʵ�ǽ��褯���äƤ��ޤ���
PL/pgSQL�ؿ��Υ����ɤ�CREATE FUNCTION���ʸ�����ƥ��Ȥ��ƻ��ꤵ��ޤ��� ñ�������ǰϤ��̾�Τ������ʸ�����ƥ��Ҥ�������ؿ��������������Ƥ�ñ����������Ų����ʤ���Фʤ�ޤ��� Ʊ�ͤˡ����ƤΥХå�����å������Ų����ʤ���Фʤ�ޤ��� �ʤ���ʸ����Ȥ��ƥ��������פ��빽ʸ�����Ѥ����Ȳ��ꤷ�ޤ��� �������ñ�˽Ťͤ������ϺǤ��Ĺ�Ǥ��ꡢ��ñ�������Ǥ���Ȼפ��ޤ�����ʣ���ʾ��֤ǤϿ��İʾ�����ܤ��������䤬ɬ�פȤʤ뤿�ᡢ�����ɤ�Ψľ�ˤ����ˤ����ʤ�ޤ��� ��������äƿ侩�����Τϡ��ؿ����Τ�"�ɥ������"��ʸ�����ƥ��Ȥ��Ƶ��Ҥ��뤳�ȤǤ���項4.1.2.2�Ƥ��������ˡ� �ɥ��������Ѥ��������Ǥ�¾�ΰ��������Ų�����ɬ�פϤ���ޤ������줾�������Ҥˤʤä����ؤ��Ȥ˰ۤʤä��ɥ������ˤ����ڤ������Ѥ��ʤ���Фʤ�ޤ��� �㤨�С�CREATE FUNCTION���ޥ�ɤ�ʲ��Τ褦�˵��Ҥ��Ƥ���ޤ���
CREATE OR REPLACE FUNCTION testfunc(integer) RETURNS integer AS $PROC$ .... $PROC$ LANGUAGE plpgsql;
���Τ�����Ǥϡ�SQL���ޥ�ɤ����ñ��ʥ�ƥ��ʸ������Ф��ư��������ѤǤ���ʸ����Ȥ��ƽ��Ѥ���SQL���ޥ�ɤ����Ҥ���ڤ뤿���$$����ѤǤ��ޤ����⤷$$��ޤ���ƥ����Ȥ������ǰϤ���ϡ�$Q$�Τ褦�ʵ��Ҥ���ѤǤ��ޤ���
�ʲ���ɽ�ϥɥ��������Ѥ��ʤ����ΰ�����ε���ˡ������ΤǤ��� �ɥ��������Ѥ�������ˤ����������ε��Ҥ�����Τˡ�����ɽ����Ω�ĤȻפ��ޤ���
�ؿ����Τ���Ƭ�������� �ʲ�������ޤ���
CREATE FUNCTION foo() RETURNS integer AS ' .... ' LANGUAGE plpgsql;
�ؿ����������Ǥϡ��������ɬ���ڥ��Ǹ���ޤ���
�ؿ�����������ʸ�����ƥ���ѡ� �ʲ�������ޤ���
a_output := ''Blah''; SELECT * FROM users WHERE f_name=''foobar'';
�ɥ��������Ѥ�����ϡ����Τ褦�˵��Ҥ��ޤ���
a_output := 'Blah'; SELECT * FROM users WHERE f_name='foobar';
�ɤ���⡢PL/pgSQL�ѡ������鸫���Ʊ��Ȥʤ�ޤ���
�ؿ�����������ʸ�����ƥ�����ñ������䤬�����硣 �ʲ�������ޤ���
a_output := a_output || '' AND name LIKE ''''foobar'''' AND xyz''
�ºݤ�a_output���ɲä�����ͤϡ� AND name LIKE 'foobar' AND xyz�Ǥ���
�ɥ��������Ѥ�����ϡ����Τ褦�˵��Ҥ��ޤ���
a_output := a_output || $$ AND name LIKE 'foobar' AND xyz$$
�ʤ����ɥ������ζ��ڤ�ʸ����$$�����Ȥϸ¤�ʤ����Ȥ����դ��Ƥ���������
�ؿ�����������ʸ�������ñ������䤬��ʸ��������������ˤ����硣 �ʲ�������ޤ���
a_output := a_output || '' AND name LIKE ''''foobar''''''
�ºݤ�a_output���ɲä�����ͤϡ� AND name LIKE 'foobar'�Ǥ���
�ɥ��������Ѥ�����ϡ����Τ褦�ˤʤ�ޤ���
a_output := a_output || $$ AND name LIKE 'foobar'$$
ʸ���������� 2�Ĥ�ñ��������������������ʤ����8�Ĥ�ñ�������ˤʤ�ˡ����ġ�����ʸ��������������ˤ�����ʤ����2���ɲä���ޤ��ˡ� �����餯��¾�δؿ�����������ؿ�������������例38-6�ˤΤߤˤ��줬ɬ�פˤʤ�Ǥ��礦�� �ʲ�������ޤ���
a_output := a_output || '' if v_'' || referrer_keys.kind || '' like '''''''''' || referrer_keys.key_string || '''''''''' then return '''''' || referrer_keys.referrer_type || ''''''; end if;'';
a_output���ͤϰʲ��Τ褦�ˤʤ�ޤ���
if v_... like ''...'' then return ''...''; end if;
�ɥ��������Ѥ�����ϡ����Τ褦�ˤʤ�ޤ���
a_output := a_output || $$ if v_$$ || referrer_keys.kind || $$ like '$$ || referrer_keys.key_string || $$' then return '$$ || referrer_keys.referrer_type || $$'; end if;$$;
������ñ�������ϻ������˺�ɾ������뤿�ᡢa_output����������ɬ�פǤ���Ȳ��ꤷ�ޤ���