35.5. ���ʽ

������PL/pgSQL �����ʹ�õı��ʽ�����÷���������ͨSQLִ�������д���ġ� ʵ���ϣ���������IJ�ѯ

SELECT expression

��ʹ�� SPI ������ִ�еġ� �ڼ���֮ǰ������PL/pgSQL������ʶ���ĵط��ȱ��������棬 Ȼ�������ʵ��ֵ���ڲ��������ﴫ�ݸ�ִ������ ����������SELECT��ִ�мƻ�ֻ��Ҫ׼��һ�Σ����������ļ����и��á�

PostgreSQL �����������������ͼ��Գ�����ֵ�Ĵ�����һЩ�����á� ��ϸ˵������������������������������Щ����

CREATE FUNCTION logfunc1 (logtxt text) RETURNS timestamp AS $$
    BEGIN
        INSERT INTO logtable VALUES (logtxt, 'now');
        RETURN 'now';
    END;
$$ LANGUAGE plpgsql;

��

CREATE FUNCTION logfunc2 (logtxt text) RETURNS timestamp AS $$
    DECLARE
        curtime timestamp;
    BEGIN
        curtime := 'now';
        INSERT INTO logtable VALUES (logtxt, curtime);
        RETURN curtime;
    END;
$$ LANGUAGE plpgsql;

�� logfunc1() ��ʵ��� PostgreSQL ������������Ϊ INSERT ׼��ִ�мƻ���ʱ��֪���ִ� 'now' Ӧ�ý��ͳ� timestamp ���ͣ���Ϊ logtable ��Ŀ���ֶξ��Ǹ����͡����ԣ����������ʱ�������ִ��м���һ�������� Ȼ���ڸ÷������������������е����� logfunc1 ������ʹ���������������˵����ɲ��dz���Ա��Ҫ�ġ�

��logfunc2� PostgreSQL ��������������֪�� now Ӧ��ת����ʲô���ͣ� ���������һ�������ַ��� now ������Ϊ text ������ֵ�� �������ֲ�����curtime��ֵʱ�� PL/pgSQL������ͨ������ text_out��timestamp_in ������ַ���ת���� timestamp ���͵ı����� ��ˣ��������ʱ���ͻᰴ�ճ���Աϣ����������ÿ��ִ�е�ʱ�򶼸��¡�

��¼�������ױ������������ֽ���������һ�����⡣ ��һ����¼�����������߱��ʽ��ʹ��ʱ�� ���ֶε�����������ͬһ�����ʽ�IJ�ͬ�����ڼ䲻���޸ģ� ��Ϊ�ñ��ʽ׼��ʹ�õ������е�һ�ε���ñ��ʽʱ���ֵ��������͡� ��д������һ������¼��Ĵ��������̵�ʱ��һ��Ҫ�������ס������Ҫʱ������EXECUTE�ƿ�������⡣��