2

我正在尝试使用 plv8 编写 postgres 函数。现在我想以这样的方式使用 pgcrypt 库:

CREATE OR REPLACE FUNCTION v01.myfunction(arg json) 
RETURNS json AS
$BODY$
  var res;
  res = obj.crypt(arg.password, res);
  plv8.elog(NOTICE, res);
  ...

$BODY$
LANGUAGE plv8;

crypt 与 pgcrypt 库一起提供并在另一个模式中找到。但如果运行我得到错误:

ERROR:  ReferenceError: obj is not defined

任何想法?谢谢!

4

2 回答 2

4

可以在其他模式中调用其他 PLV8 函数,是的。

不过,您没有正确调用该函数。利用

var myFunction = plv8.find_function("schemaName.functionName")

var result = myFunction();

AFAIK 你只能以这种方式调用其他 PLV8 函数,而不是说 PLPGSQL。

您可以使用plv8.execute("select someFunctionInAnotherLanguage()")

于 2015-06-03T17:54:35.713 回答
3

好的,我找到了:

var pp = plv8.execute("SELECT obj.crypt($1,$2)",[arg.password, cpw]);

简单的 :-)

于 2015-06-03T18:50:32.243 回答