PostgreSQL 9.0.4ʸ�� | ||||
---|---|---|---|---|
前のページ | 巻戻し | 第 41章PL/Perl - Perl��³������ | 早送り | 次のページ |
���ߤΥ��å�����ͭ��������δؿ��ƤӽФ��֤ǥǡ����ʥ����ɻ��Ȥ�ޤ�ˤ�����Ϥ����뤿��˥������Х��%_SHARED�ϥå������Ѥ��뤳�Ȥ��Ǥ��ޤ���
�ǡ����ζ�ͭ�ˤĤ��ƴ�ñ�����ʲ��˼����ޤ���
CREATE OR REPLACE FUNCTION set_var(name text, val text) RETURNS text AS $$ if ($_SHARED{$_[0]} = $_[1]) { return 'ok'; } else { return "cannot set shared variable $_[0] to $_[1]"; } $$ LANGUAGE plperl; CREATE OR REPLACE FUNCTION get_var(name text) RETURNS text AS $$ return $_SHARED{$_[0]}; $$ LANGUAGE plperl; SELECT set_var('sample', 'Hello, PL/Perl! How''s tricks?'); SELECT get_var('sample');
�ʲ��ϡ������ɻ��Ȥ���Ѥ�����¿��ʣ������Ǥ���
CREATE OR REPLACE FUNCTION myfuncs() RETURNS void AS $$ $_SHARED{myquote} = sub { my $arg = shift; $arg =~ s/(['\\])/\\$1/g; return "'$arg'"; }; $$ LANGUAGE plperl; SELECT myfuncs(); /* �ؿ��ν���� */ /* ������ؿ�����Ѥ���ؿ������ */ CREATE OR REPLACE FUNCTION use_quote(TEXT) RETURNS text AS $$ my $text_to_quote = shift; my $qfunc = $_SHARED{myquote}; return &$qfunc($text_to_quote); $$ LANGUAGE plperl;
�ʲ����������ˤ���ȡ����return $_SHARED{myquote}->($_[0]);�Ȥ���1�ԤΤߤ��֤������뤳�Ȥ��Ǥ��ޤ�����
�������ƥ������ͳ�ˤ�ꡢPL/Perl�ϡ����������ǸƤӽФ��줿�ؿ��Υ������Ѥ���Ω����Perl���ץ��Ǽ¹Ԥ��ޤ��� ����ˤ�ꡢ����桼���λ��Τޤ��ϰ��դˤ�ä�¾�Υ桼����PL/Perl�ؿ���ư����Ĥ���Ƥ��ޤ����Ȥ��ɤ��ޤ��� �����������ץ�Ϥ��줾���ȼ���%_SHARED�ʤɤΥ������Х���֤�����ޤ��� �������äơ�Ʊ���SQL������ˤ�äƼ¹Ԥ��줿���Τߡ����Ĥ�PL/Perl�ؿ���Ʊ��%_SHARED�ͤ�ͭ���ޤ��� ���ĤΥ��å�������ʣ����SQL������θ��ǥ����ɤ��SECURITY DEFINER��ͳ��SET ROLE�λ��Ѥʤɡ˼¹Ԥ��륢�ץꥱ�������Ǥϡ��μ¤�PL/Perl�ؿ���%_SHARED��𤷤ƥǡ�����ͭ���뤳�Ȥ��Ǥ���褦�ˡ�����Ū�ʽ�����Ԥ�ɬ�פ�����ޤ��� ���Τ���ˤϡ��̿����ʤ���Фʤ�ʤ��ؿ���Ʊ���桼���ˤ�äƽ�ͭ����뤳�ȡ������SECURITY DEFINER�Ȱ��դ����Ƥ��뤳�Ȥ�μ¤ˤ��ʤ���Фʤ�ޤ��� �����ʤ��餳�������ؿ����տޤ��Ƥ��ʤ����Ȥ�Ԥ�����˻��Ѥ��뤳�Ȥ��Ǥ��ʤ��褦�����դ��ʤ���Фʤ�ޤ���