pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
假设你有下面这个表:
CREATE TABLE EMPLOYEE (
name text,
basesalary int4,
bonus int4 );
为了得到总报酬(基本工资 + 奖金),我们可以 像下面这样定义一个函数:
CREATE FUNCTION totalcomp(int4, int4) RETURNS int4
AS 'return $_[0] + $_[1]'
LANGUAGE 'plperl';
注意,参数如你所料通过 @_ 传给函数。另外,由于 创建函数的 SQL 的引号规则,你 可能会发现自己要比习惯上更频繁地使用扩展引号函数 (qq[]、q[]、qw[])。
现在我们可以像这样使用我们的函数:
SELECT name, totalcomp(basesalary, bonus) from employee
不过,我们也可以把整个元组传给函数:
CREATE FUNCTION empcomp(employee) returns int4
AS 'my $emp = shift;
return $emp->{''basesalary''} + $emp->{''bonus''};'
LANGUAGE 'plperl';
元组以哈希的引用形式传递。键是 元组中字段的名字。值是元组中对应 字段的值。
新函数 empcomp 可以这样使用:
SELECT name, empcomp(employee) from employee;
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。