PostgreSQL 9.0.4ʸ�� | ||||
---|---|---|---|---|
前のページ | 巻戻し | 第 39章PL/pgSQL - SQL��³������ | 早送り | 次のページ |
���ᤪ��Ӽ���Ǥϡ�����Ū��PL/pgSQL�Dz�ᤵ��롢���Ƥμ����ʸ�ˤĤ����������ޤ��� �����μ����ʸ�Ȥ���ǧ����ʤ���Τ����ơ�SQL���ޥ�ɤǤ���Ȳ��ꤵ�졢項39.5.2�����項39.5.3�ˤ����Ƶ��Ҥ����褦�ˡ��ᥤ��ǡ����١����������������¹Ԥ���ޤ���
�ͤ�PL/pgSQL�ѿ�������������ϰʲ��Τ褦�˵��Ҥ��ޤ���
variable := expression;
��Ҥ����̤ꡢ���Τ褦��ʸ��ˤ��뼰�ϡ��ᥤ��ǡ����١�����������������SELECT SQL���ޥ�ɤˤ�ä�ɾ������ޤ��� ����1�Ĥ��ͤ��������ʤ���Фʤ�ޤ��� (�ѿ������ѿ��ޤ��ϥ쥳�����ѿ��ξ��Ϲ��ͤȤʤ뤫�⤷��ޤ���)�� �оݤ��ѿ���ñ����ѿ�(�֥��å�̾�ǽ�����ǽ)�����ѿ��ޤ��ϥ쥳�����ѿ��Υե�����ɡ��ޤ���ñ����ѿ��ޤ��ϥե�����ɤȤʤ��������ǤȤ��뤳�Ȥ��Ǥ��ޤ���
���η�̥ǡ��������ѿ��Υǡ������˰��פ��ʤ���硢�ޤ��ϡ��ѿ�����char(20)�Τ褦�ˡ�������礭��/���٤���ľ�硢��̤��ͤ� PL/pgSQL���ץ�ˤ�äơ���̤η��ν��ϴؿ����ѿ��η������ϴؿ�����Ѥ��ư���Ū���Ѵ�����ޤ��� ����ˤ�ꡢ����ͤ�ʸ������������ϴؿ��Ǽ����դ��뤳�Ȥ��Ǥ��ʤ����ˡ����ϴؿ��ˤ����Ƽ¹Ի����顼��ȯ�������ǽ�������뤳�Ȥ����դ��Ƥ���������
�㡧
tax := subtotal * 0.06; my_record.user_id := 20;
�㤨�С�RETURNING��Τʤ�INSERT�Τ褦�ˡ��Ԥ��֤��ʤ�Ǥ�դ�SQL�Υ��ޥ�ɤˤĤ��Ƥϡ�ñ�ˤ��Υ��ޥ�ɤҤ��뤳�Ȥˤ�ä�PL/pgSQL�ؿ��������ǥ��ޥ�ɤ�¹ԤǤ��ޤ���
���ޥ�ɥƥ����Ȥ˸�������Ƥ�PL/pgSQL�ѿ�̾�ϡ��ѥ����Ȥ��ư����ޤ��� ���θ塢�¹Ի��Υѥ����ͤȤ��ơ����λ������ѿ��ͤ�����ޤ��� ����ϰ����˽Ҥ٤����˴ؤ��������Ʊ���Ǥ��� 項39.10.1�Ȥ��Ƥ���������
SQL���ޥ�ɤ����Τ褦�˼¹Ԥ����ȡ�PL/pgSQL�ϥ��ޥ�ɤ���٤����ײ褷���ǡ����١�����³�����Ǥ����ޤǡ��ʸ�μ¹ԤǤ��ηײ������Ѥ��ޤ��� ����˴ؤ���ܺ٤ˤĤ��Ƥ�項39.10.2�Ȥ��Ƥ���������
���ޤ���SELECT�䤤��碌��ɾ�����Ʒ�̤��˴����뤳�Ȥ������Ω�ľ�礬����ޤ��� �㤨�С��ؿ��θƤӽФ��ˤ����ơ�����Ū�����̤�����Ǥ��뤬����̤�̵�ѤǤ�����Ǥ��� ���Τ褦�ʻ�PL/pgSQL�Ǥϡ�PERFORMʸ����Ѥ��Ƥ���������
PERFORM query;
�����query��¹Ԥ������η�̤��˴����ޤ��� SQL��SELECTʸ��Ʊ����ˡ��query�Ҥ��ޤ������ǽ�Υ������SELECT��PERFORM���֤������Ƥ��������� ��̤��֤��ʤ����ޥ�ɤ�Ʊ�ͤˡ�PL/pgSQL�ѿ����䤤��碌����֤�������졢�ײ��Ʊ�ͤ˥���å��夵��ޤ��� �ޤ����ü���ѿ��Ǥ���FOUND���䤤��碌��̤�1�ԤǤ��������줿���Ͽ������ꤵ�졢��������ʤ����ϵ������ꤵ��ޤ���項39.5.5�Ȥ��Ƥ��������ˡ�
注意: ľ��SELECT�Ҥ���С����η�̤����뤳�Ȥ��Ǥ���ȹͤ��뤫�⤷��ޤ����������Ǥ����Ԥ���ˡ��PERFORM��������ޤ��� SELECT�Τ褦�˹Ԥ��֤�SQL���ޥ�ɤϡ����顼�Ȥ��Ƶ��䤵��ޤ��� �ʤ���INTO���ͭ��������㳰�Ǥ��ꡢ������������ޤ���
�ʲ�������ޤ���
PERFORM create_mv('cs_session_page_requests_mv', my_query);
��¿ʬ��ʣ����Ρ�1�Ԥ��֤�SQL���ޥ�ɤη�̤ϡ��쥳�����ѿ����Է����ѿ����������ѿ��Υꥹ�Ȥ��������뤳�Ȥ��Ǥ��ޤ��� ����ϡ�����Ū��SQL���ޥ�ɤҤ��ơ������INTO����ɲä��뤳�Ȥˤ�äƹԤ��ޤ��� �ʲ�������ޤ���
SELECT select_expressions INTO [STRICT] target FROM ...; INSERT ... RETURNING expressions INTO [STRICT] target; UPDATE ... RETURNING expressions INTO [STRICT] target; DELETE ... RETURNING expressions INTO [STRICT] target;
�����ǡ�target�ϥ쥳�����ѿ������ѿ������뤤�ϡ�ñ����ѿ��ȥ쥳����/���ѿ��Υե�����ɤ�ޤǶ��ڤä��ꥹ�ȤǤ��� PL/pgSQL�ѿ��ˤ��Ĥ���䤤��碌���ִ����졢�Ԥ��֤��ʤ����ޥ�ɤˤ����ƽҤ٤��褦�˷ײ褬����å��夵��ޤ��� ���Τ褦�˺�ư����Τϡ�RETURNING��ȼ�ä�INSERT/UPDATE/DELETE��SELECT����ӹԥ��åȤη�̤��֤��桼�ƥ���ƥ����ޥ�ɡ��㤨�С�EXPLAIN�ˤǤ��� INTO��ʳ��Ǥϡ�SQL���ޥ�ɤ�PL/pgSQL�γ����˵��Ҥ�����Τ�Ʊ���Ǥ���
ティップ: �̾��PostgreSQL��SELECT INTOʸ�Ǥϡ�INTO���оݤϿ��������������ơ��֥�Ǥ��� ��������INTO��ȼ�ä�SELECT�Ǥϡ����β��̾���礭���ۤʤ뤳�Ȥ����դ��Ƥ��������� PL/pgSQL�ؿ�������SELECT�η�̤���ơ��֥��������������ϡ�CREATE TABLE ... AS SELECT��ʸ����Ѥ��Ƥ���������
�Ԥޤ����ѿ��ꥹ�Ȥ��оݤ˻��Ѥ��줿��硢����ȥǡ������ˤ������䤤��碌�η�̤��оݤι�¤�����Τ˰��פ��ʤ���Фʤ�ޤ��� ����ʤ��ȡ��¹Ի����顼��ȯ�����ޤ��� �쥳�����ѿ����оݤξ��ϡ��䤤��碌��̤���ιԷ��˼��Ȥ�ưŪ�����ꤷ�ޤ���
INTO���SQL���ޥ�ɤΤۤȤ��Ǥ�դξ��˵��Ҥ��뤳�Ȥ��Ǥ��ޤ��� ����Ū�ˤϡ�SELECTʸ�ˤ����Ƥ�select_expressions��ľ���ޤ���ľ��ˡ�¾�Υ��ޥ�ɤˤ����Ƥ�ʸ�ν����˵��Ҥ���ޤ��� ����ΥС�������PL/pgSQL�Υѡ�������긷�ʤˤʤ���������ơ����ν����˽������Ȥ�侩���ޤ���
INTO��ˤ�����STRICT�����ꤵ��ʤ���硢target���䤤��碌���֤��ǽ�ιԤȤʤꡢ�Ԥ��֤��ʤ�����NULL�Ȥʤ�ޤ��� ��"�ǽ�ι�"�Ȥ�ORDER BY����Ѥ��ʤ�������Ǥ��ʤ����Ȥ����դ��Ƥ����������� 2���ܰʹߤιԤη�̤ϡ������˴�����ޤ��� �ʲ��Τ褦�ˡ��ü��FOUND�ѿ���項39.5.5�Ȥ��Ƥ��������ˤ�Ĵ�٤ơ��Ԥ��֤��줿���ɤ��������뤳�Ȥ��Ǥ��ޤ���
SELECT * INTO myrec FROM emp WHERE empname = myname; IF NOT FOUND THEN RAISE EXCEPTION 'employee % not found', myname; END IF;
STRICT���ץ�����ꤵ�줿��硢�䤤��碌�����Τ�1�Ԥ��֤��ʤ���Фʤ�ޤ��� ����ʤ��ȡ��Ԥ��ʤ�����NO_DATA_FOUND��2�ʾ夬�֤ä�����TOO_MANY_ROWS�Ȥ����¹Ի����顼�������ޤ��� ���顼����ª���������ϡ��㳰�֥��å�����ѤǤ��ޤ��� �ʲ�������ޤ���
BEGIN SELECT * INTO STRICT myrec FROM emp WHERE empname = myname; EXCEPTION WHEN NO_DATA_FOUND THEN RAISE EXCEPTION 'employee % not found', myname; WHEN TOO_MANY_ROWS THEN RAISE EXCEPTION 'employee % not unique', myname; END;
STRICT����ꤷ�����ޥ�ɤ���������ȡ�FOUND�ѿ��Ͼ�˿������ꤵ��ޤ���
STRICT�����ꤵ��ʤ����Ǥ⡢RETURNING��ȼ�ä�INSERT/UPDATE/DELETE��2�ʾ���֤������ϡ����顼�Ȥʤ�ޤ��� �ʤ��ʤ顢�ɤ�1�Ԥ��֤������ꤹ��ORDER BY�Τ褦�ʥ��ץ����¸�ߤ��ʤ�����Ǥ���
注意: STRICT���ץ����ϡ�Oracle��PL/SQL��SELECT INTO����Ӵ�Ϣ����ʸ���б����ޤ���
SQL���䤤��碌���֤�ʣ���Ԥη�̤�������������ϡ�項39.6.4�Ȥ��Ƥ���������
PL/pgSQL�ؿ��������ǡ�ưŪ���ޥ�ɡ��Ĥޤ�¹Ԥ����٤��̤Υơ��֥���̤Υǡ���������Ѥ��륳�ޥ�ɤ������������Ȥ������Ȥ��褯����Ǥ��礦�� PL/pgSQL���̾�Ԥ����ޥ�ɤηײ�Υ���å���ϡ�項39.10.2�ǽҤ٤��褦�ˡˤ��Τ褦�ʾ����Ǥ�ư��ޤ��� ���μ�����������ˡ��ʲ���EXECUTEʸ���Ѱդ���Ƥ��ޤ���
EXECUTE command-string [ INTO [STRICT] target ] [ USING expression [, ... ] ];
�����ǡ�command-string�ϼ¹Ԥ���륳�ޥ�ɤ�ޤ��text���Ρ�ʸ������������뼰�Ǥ��� ���ץ�����target�ϥ쥳�����ѿ������ѿ������뤤�ϡ�ñ����ѿ��ȥ쥳����/���ѿ��Υե�����ɤ�ޤǶ��ڤä��ꥹ�Ȥǡ�������˥��ޥ�ɤη�̤���Ǽ����ޤ��� ���ץ�����USING���� ���ޥ�ɤ�����������ͤ�Ϳ���ޤ���
PL/pgSQL�ѿ��ϡ����α黻�ѤΥ��ޥ��ʸ������ִ�����ޤ��� ɬ�פ��ѿ����ͤϤ��٤ƥ��ޥ��ʸ��������������������ޤʤ���Фʤ�ޤ��� �⤷���ϡ��ʲ�����������ѥ�������Ѥ��뤳�Ȥ�Ǥ��ޤ���
�ޤ���EXECUTE��𤷤Ƽ¹Ԥ���륳�ޥ�ɷײ��å��夹�뤳�ȤϤ���ޤ��� ����ˡ����ޥ�ɤ�ʸ���¹Ԥ������˽�������ޤ��� �������äơ��ۤʤ�ơ��֥������Ф�������¹ԤǤ���褦�ˡ����ޥ��ʸ�����ؿ�������ưŪ�˺������뤳�Ȥ��Ǥ��ޤ���
INTO��ϡ��Ԥ��֤�SQL���ޥ�ɤη�̤���������٤�������ꤷ�ޤ��� �Ԥޤ����ѿ��ꥹ�Ȥ��Ѥ��������������䤤��碌�η�̤ι�¤�����Τ˰��פ��ʤ���Фʤ�ޤ��� (�쥳�����ѿ������Ѥ���������ưŪ�˷�̤ι�¤�Ȱ��פ���褦�˼��Ȥ��ۤ����ޤ��ˡ� ʣ���ιԤ��֤��줿�����ǽ�ιԤ�����INTO�ѿ�����������ޤ��� 1�Ԥ��֤���ʤ�����NULL ��INTO�ѿ�����������ޤ��� INTO�礬���ꤵ��ʤ������䤤��碌�η�̤ϼΤƤ��ޤ���
STRICT���ץ�����ꤵ�줿�����䤤��碌�η�̤����Τ�1�Ԥξ�����������顼�Ȥʤ�ޤ���
���ޥ��ʸ����ϥѥ����ͤ���Ѳ�ǽ�ǡ�������$1��$2���Ȥ��ƥ��ޥ�ɤ���ǻ��Ȥ���ޤ��� �����ε����USING��Ϳ�������ͤȤ��ޤ��� ���������ϥǡ������ͤ�ƥ����ȤȤ��ƥ��ޥ��ʸ����������������ݡ��褯���ޤ�ޤ��� ������ͤ�ƥ����Ȥ��Ѵ��������Ƥ��εդ�Ԥ����μ¹Ի������С��إåɤ��ɻߤ���ȤȤ�ˡ��������դ�����Ȥ������������פ�ɬ�פ��ʤ����ᡢSQL�������������Ф��Ƥ�꽱���ˤ����ʤ�ޤ��� �ʲ�������ޤ���
EXECUTE 'SELECT count(*) FROM mytable WHERE inserted_by = $1 AND inserted <= $2' INTO c USING checked_user, checked_date;
�ѥ�������ϥǡ����ͤΤ��Ѳ�ǽ�Ǥ��� �⤷ưŪ�˷��ꤵ���ơ��֥����̾����Ѥ�������硢�ƥ����Ȥǥ��ޥ��ʸ����ˤ�������������ɬ�פ�����ޤ��� �㤨�С���Ԥ����䤤��碌����ưŪ�����줿�ơ��֥���Ф��ƽ��������ɬ�פ�������ϡ����Τ褦�ˤ��ޤ���
EXECUTE 'SELECT count(*) FROM ' || tabname::regclass || ' WHERE inserted_by = $1 AND inserted <= $2' INTO c USING checked_user, checked_date;
¾�ˤ�ѥ��������SELECT��INSERT��UPDATE��DELETE���ޥ�ɤǤ���ư��ʤ����Ȥ������¤�����ޤ��� ¾�μ����ʸ(����Ū�˥桼�ƥ���ƥ�ʸ�ȸƤФ�ޤ�)�Ǥϡ�ñ�ʤ�ǡ����ͤǤ��ä��Ȥ��Ƥ�ƥ����Ȥ��ͤȤ��������ޤʤ���Фʤ�ޤ���
�ǽ����Τ褦�ˡ�ñ���������ޥ�ɤ�USING�ѥ�����Ȥä�EXECUTE�ϡ����ޥ�ɤ�ľ��PL/pgSQL�ǽơ�PL/pgSQL�ѿ���ưŪ���ִ�������Τȵ�ǽŪ��Ʊ���Ǥ��� ���פʺ��ۤȤ��ơ�EXECUTE�����ߤΥѥ����ͤ��ò������ײ�������������ޥ�ɤ�¹Ԥ����٤˷ײ��ƺ������뤳�ȤǤ��� ������PL/pgSQL���̾����Ū�ʷײ����������ƻ��Ѥ���������å��夷�ޤ��� ��Ŭ�ʷײ褬�ѥ����ͤ��礭����¸�����硢EXECUTE�������˹�®������ޤ������ײ褬�ѥ����ͤ˰�¸���ʤ���硢�ײ�κƺ�����̵�̤ˤʤ�ޤ���
SELECT INTO��EXECUTE�Ǥϸ��ߥ��ݡ��Ȥ���ޤ��� ����ˡ����̤�SELECT���ޥ�ɤ�¹Ԥ���EXECUTE�ΰ����Ȥ���INTO�Ҥ��Ƥ���������
注意: PL/pgSQL EXECUTEʸ��PostgreSQL�����Фǥ��ݡ��Ȥ���Ƥ���EXECUTESQLʸ�Ȥϴ�Ϣ������ޤ��� �����Ф�EXECUTEʸ��PL/pgSQL�ؿ���ǻ��Ѥ��뤳�ȤϤǤ��ޤ���ʻ��Ѥ���ɬ�פ⤢��ޤ���ˡ�
例 39-1. ưŪ�䤤��碌������ͤΰ������դ�
ưŪ���ޥ�ɤ���Ѥ���������Ф���PL/pgSQL�Ǥ�ñ�������������פ��ʤ���Фʤ�ޤ��� �ؿ����Τˤ��������Υƥ����Ȥ�������դ�����侩��ˡ�ϡ��ɥ���������Ѥ�����ˡ�Ǥ��� �ʥɥ��������Ѥ��ʤ��켰�Υ����ɤ���ͭ���Ƥ�����ϡ�項39.11.1�γ��פȤ��뤳�Ȥ������䤹�������ɤؤ��Ѵ���Ȥμ�����ˤʤ�ޤ��ˡ�
���������䤤��碌���������٤�ưŪ���ͤϡ����켫�Ȥ������˰������ޤ��ǽ�������뤿�ᡢ���տ���������ɬ�פǤ��� �ʲ�������ޤ��ʤ����Ǥϴؿ��˥ɥ��������Ѥ�����ˡ����Ѥ���Ȳ��ꤷ�Ƥ���Τǡ����������Ų�����ɬ�פϤ���ޤ���ˡ�
EXECUTE 'UPDATE tbl SET ' || quote_ident(colname) || ' = ' || quote_literal(newvalue) || ' WHERE key = ' || quote_literal(keyvalue);
������ϡ�quote_ident
��quote_literal
�ؿ���項9.4�ȡˤλ�����ˡ���Ƥ��ޤ���
�����Τ��ᡢ��ޤ��ϥơ��֥뼱�̻Ҥ�ޤ༰��ưŪ�䤤��碌��������������quote_ident
��𤷤��Ϥ���ʤ��ƤϤʤ�ޤ���
�Ȥ�Ω�Ƥ��륳�ޥ�ɤ���Υ�ƥ��ʸ����Ȥʤ�Ϥ����ͤ�ޤ༰�ϡ�quote_literal
��𤷤��Ϥ���ʤ���Фʤ�ޤ���
�����δؿ��ϡ����٤Ƥ��ü�ʸ����Ŭ�ڤ˥��������פ��������������Ű�����ޤ���ñ�������ǰϤޤ줿���ϥƥ����Ȥ��֤�����ˡ�Ŭ�ڤʼ���Ƨ�ߤޤ���
quote_literal
��STRICT��٥��դ�����Ƥ��뤿�ᡢNULL�����ǸƤӽФ��줿��硢���NULL���֤��ޤ���
�嵭����ǡ�newvalue�ޤ���keyvalue��NULL�ξ�硢ưŪ��礻ʸ�������Τ�NULL�ȤʤꡢEXECUTE����Υ��顼��Ƴ���ޤ���
quote_nullable
�ؿ�����Ѥ��뤳�Ȥǡ������������뤳�Ȥ��Ǥ��ޤ���
����ư��ϡ�NULL�����դ��ǸƤӽФ��줿����ʸ����NULL���֤����Ȥ������quote_literal
��Ʊ��Ǥ���
�ʲ�������ޤ���
EXECUTE 'UPDATE tbl SET ' || quote_ident(colname) || ' = ' || quote_nullable(newvalue) || ' WHERE key = ' || quote_nullable(keyvalue);
NULL�β�ǽ���Τ����ͤ��������ΤǤ���С��̾�quote_literal
�������quote_nullable
����Ѥ��ʤ���Фʤ�ޤ���
���Ĥ�Τ褦�ˡ��䤤��碌�����NULL�ͤϰտޤ��ʤ���̤�μ¤ˤ⤿�餵�ʤ��褦��θ�ʤ���Фʤ�ޤ��� �㤨�м��Τ褦��WHERE��η�̤Ϥɤ��ʤ�ΤǤ��礦��
'WHERE key = ' || quote_nullable(keyvalue)
�����keyvalue��NULL�Ǥ���¤��������ޤ��� ������ͳ�ϡ������黻��=��NULL���ڥ��ɤǻ��Ѥ���Ȥ��η�̤Ͼ��NULL�Ȥʤ뤫��Ǥ��� NULL���̾�Υ������ͤ�Ʊ���褦��ư���������硢�嵭�ʲ��Τ褦�˽����ʤ���Фʤ�ޤ���
'WHERE key IS NOT DISTINCT FROM ' || quote_nullable(keyvalue)
�ʸ������Ǥϡ�IS NOT DISTINCT FROM��=�������Ψ�������ʤ������ޤ��Τǡ�ɬ�פ�����줿���ʳ��ϹԤ�ʤ��褦�ˤ��Ƥ��������� NULL��IS DISTINCT�ˤĤ��Ƥι��ʤ�����項9.2�Ȥ��Ƥ�����������
�ɥ������ϸ���Υƥ����Ȥ�������դ�������Τ�ͭ�ѤǤ���Ȥ������Ȥ����դ��Ƥ��������� ������Τ褦�˵��Ҥ���Τ����˰����ͤ��Ǥ���
EXECUTE 'UPDATE tbl SET ' || quote_ident(colname) || ' = $$' || newvalue || '$$ WHERE key = ' || quote_literal(keyvalue);
�ʤ��ʤ顢newvalue�����Ƥ����ޤ���$$��ޤ���ϡ�����Ǽ��ν����ذܤäƤ��ޤ�����Ǥ���
Ʊ�ͤ���¬���֤ϡ��ɥ�������¾�ζ��ڤ�ʸ������������ⵯ����ޤ���
�������äơ��ƥ����Ȥ����Ƥ��İ����Ƥ��ʤ����ϡ������˥ƥ����Ȥ�������դ����뤿��ˡ�quote_literal
��quote_nullable
���ޤ���quote_ident
�ؿ���Ŭ�ڤ˻������ʤ���Фʤ�ޤ�����
ưŪ�䤤��碌��EXECUTE��Ĺ������例39-7�ˤ���ޤ��� ����Ͽ������ؿ���������뤿���CREATE FUNCTION���ޥ�ɤ��Ȥ�Ω�Ƽ¹Ԥ����ΤǤ���
���ޥ�ɤθ��̤�Ƚ�Ǥ���ˤϤ����Ĥ���ˡ������ޤ��� �ǽ����ˡ�ϰʲ��Τ褦�ʷ�����GET DIAGNOSTICS����Ѥ�����ˡ�Ǥ���
GET DIAGNOSTICS variable = item [ , ... ];
���Υ��ޥ�ɤˤ�äƥ����ƥॹ�ơ�����������������Ф����Ȥ��Ǥ��ޤ��� ��item�ϡ����ꤵ�줿�ѿ��ʤ���ϼ�����뤿����������ǡ������Ǥʤ���Фʤ�ޤ���ˤ��������������ͤ��̤��륭����ɤǤ��� �����Ѳ�ǽ�ʥ��ơ��������ܤϡ�SQL������������줿�ǽ�SQL���ޥ�ɤˤ��������줿�Կ���ROW_COUNT������ӡ��Ǥ�Ƕ��SQL���ޥ�ɤˤ���������줿�Ǹ�ιԤ�OID��RESULT_OID�Ǥ��� RESULT_OID��OID����ͭ����ơ��֥�ؤ�INSERT���ޥ�ɤθ�ǤΤ�ͭ�դǤ��뤳�Ȥ����դ��Ƥ���������
�ʲ�������ޤ���
GET DIAGNOSTICS integer_var = ROW_COUNT;
���ޥ�ɤθ��̤�Ƚ�Ǥ���2���ܤ���ˡ�ϡ�FOUND�Ȥ���boolean�����ü���ѿ������뤳�ȤǤ��� PL/pgSQL�γƴؿ��ƤӽФ��ǻ��Ѥ����ݡ�FOUND�Ϻǽ�ϵ������ꤵ��Ƥ��ޤ��� �ʲ��Τ褦�ˡ����줾���ʸ�μ���ˤ�ä����꤬�ѹ�����ޤ���
SELECT INTOʸ�ϡ��Ԥ��������줿���Ͽ����֤���ʤ��ä����ϵ���FOUND�����ꤷ�ޤ���
PERFORMʸ�ϡ�1�İʾ�ιԤ��������˴��ˤ��줿���Ͽ����ޤä�����������ʤ��ä����ϵ���FOUND�����ꤷ�ޤ���
UPDATE��INSERT�������DELETEʸ�ϡ����ʤ��Ȥ�1�Ԥ��ƶ�����������Ͽ����ޤä����ƶ�������ʤ��ä����ϵ���FOUND�����ꤷ�ޤ���
FETCHʸ�ϡ��Ԥ��֤��줿���Ͽ����ޤä����֤���ʤ��ä����ϵ���FOUND�����ꤷ�ޤ���
MOVEʸ�ϡ���������ΰ�ư���������������Ͽ������Ԥ������ϵ���FOUND�����ꤷ�ޤ���
FORʸ��1��ʾ巫���֤����Ԥ�줿���Ͽ����Ԥ��ʤ��ä����ϵ���FOUND�����ꤷ�ޤ��� ����ϣ��Ĥ�FORʸ���Ƥ��Ѱ��Ρ�����FOR�롼�ס��쥳���ɥ��å�FOR�롼�ס�ưŪ�쥳���ɥ��å�FOR�롼�ס������ƥ�������FOR�ˤ�Ŭ�Ѥ���ޤ��� FOUND��FOR�롼�פ���λ�����ݡ����Τ褦�����ꤵ��ޤ��� �Ĥޤꡢ�롼�¹����FORʸ�ˤ��FOUND���ѹ��Ϥ���ޤ��� ���������롼���������¾�����ʸ��¹Ԥ��뤳�Ȥˤ�äơ��ѹ�����뤫�⤷��ޤ���
RETURN QUERY��RETURN QUERY EXECUTEʸ�ϡ��䤤��碌���ԤĤǤ��֤��п����Ԥ��֤���ʤ���е������ꤷ�ޤ���
¾��PL/pgSQLʸ��FOUND�ξ��֤��ѹ����ޤ��� �äˡ�EXECUTE��GET DIAGNOSTICS�ν��Ϥ��ѹ����ޤ�����FOUND���ѹ����ʤ����Ȥ����դ��Ƥ���������
FOUND�Ϥ��줾���PL/pgSQL�ؿ������Υ��������ѿ��Ǥ��� FOUND���Ф��ƹԤ�줿���Ƥ��ѹ��ϡ����ߤδؿ��ˤΤ߱ƶ����ޤ���
���⤷�ʤ��ץ졼���ۥ��ʸ��ͭ�Ѥˤʤ뤳�Ȥ�����ޤ��� �㤨�С�IF/THEN/ELSEʸ�ΰ�������ʸ�Ǥ��뤳�Ȥ��������������Ǥ��� ���Τ褦����Ū�ˤ�NULLʸ����Ѥ��ޤ���
NULL;
�㤨�С�����2�ĤΥ����ɤ�Ʊ���Ǥ���
BEGIN y := x / 0; EXCEPTION WHEN division_by_zero THEN NULL; -- �����̵�뤹�� END; END;
BEGIN y := x / 0; EXCEPTION WHEN division_by_zero THEN -- �����̵�뤹�� END;
�ɤ��餬˾�ޤ����Ȼפ����ϡ����ߤ�����Ǥ���
注意: Oracle��PL/SQL�Ǥ�̵���Ҥ�ʸ�ϵ�����ޤ���Τǡ��������������Ǥ�NULLʸ��ɬ���Ǥ��� ������PL/pgSQL�Ǥ�̵���Ҥ�ʸ�����Ĥ���Ƥ��ޤ���