1

我在 postgresql 中创建了一个过程,如下所示。

CREATE OR REPLACE FUNCTION public.functiontest2(
    IN data numeric,
    OUT result numeric,
   OUT result1 numeric)
RETURNS record AS
$BODY$
  DECLARE
    declare SEQVAL decimal := 10;

    BEGIN   
      result=SEQVAL;
      result1=data;
    END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

现在我已经从节点 pg 执行了这个过程

client.query('select functionTest2(10)', input, function(err, result){});

以前,当我执行上面的代码时,它给了我以下格式的结果。

{
"command":"SELECT",
"rowCount":1,
"oid":null,
"rows":[{"result":"10"},{"result1":"10"}],
"fields":[{"name":"result","tableID":0,"columnID":0,"dataTypeID":1700,"dataTypeSize":-1,"dataTypeModifier":-1,"format":"text"}],
"_parsers":[null],
"rowAsArray":false
}

但是现在我已经卸载了 node pg 模块并再次安装了 node pg 模块。它给了我以下格式的结果

{
 "command":"SELECT",
 "rowCount":1,
 "oid":null,
 "rows":[{"functiontest2":"(10,10)"}],
 "fields":          [{"name":"functiontest2","tableID":0,"columnID":0,"dataTypeID":2249,"dataTypeSize":-1,"dataTypeModifier":-1,"format":"text"}],
 "_parsers":[null],
 "rowAsArray":false}

因此,不同之处在于不是返回记录的名称值对,而是返回函数名称和值数组。我尝试安装不同版本的节点 pg 模块,但问题仍然存在。

提前致谢。

4

1 回答 1

2

好的..伙计们我发现了问题..实际上我需要使用 select * from function2(10); 这样的查询 它解决了问题

于 2016-05-02T08:19:44.337 回答