这不是我第一次在 Postgresql 中添加 perl 函数时收到这个奇怪的通知:
NOTICE: elseif should be elsif at line 11.
这发生在 CREATE FUNCTION 以及使用函数时。当然,我尝试使用 elsif 进行更改,但随后因语法错误而失败。
任何建议将不胜感激(即使我可以应付该通知)
这是我的代码:
CREATE FUNCTION hds_updatewebservers_products(character varying)
RETURNS boolean
AS
$_$
my $product_ref = @_[0];
# Launch update
$checkexitcode = system ("sudo -u dbliveud /home/dbliveud/scripts/maj/launch-all.sh " . $product_ref . " ");
if ($checkexitcode > 0) {
# Error while updating
return false;
} elseif {
# Ok update done
return true;
}
$_$
LANGUAGE plperlu STRICT;
我无法重现您的错误,它在 Linux 上的 PostgreSQL 9.5 上运行良好。你运行的是什么版本和平台?
请注意,您的功能可能会被严重利用,例如
你为什么使用
elseif
?为什么不只是else
?请参阅 perl 的文档elseif
最后,您可以简单地(优雅地):