我创建了使用参数调用外部脚本的函数:
CREATE OR REPLACE FUNCTION foo3(text, text) RETURNS TEXT AS $$
$ip = shift;
$username = shift;
$cmd="/bin/echo -n $ip $username > /tmp/test";
return `$cmd`;
$$ LANGUAGE plperlu;
手动执行时效果很好。但是我想每次在我的表中插入新记录时调用它(传递参数是记录值):
postgres=# CREATE TRIGGER t_foo
postgres-# BEFORE UPDATE
postgres-# ON mapping
postgres-# FOR EACH ROW
postgres-# EXECUTE PROCEDURE foo3(OLD.ip, OLD.username);
ERROR: syntax error at or near "."
LINE 5: EXECUTE PROCEDURE foo3(OLD.ip, OLD.username);
^
显然我不能将任何参数传递给该函数。如何解决?