以下のように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
}
しかし、今はノード pg モジュールをアンインストールし、ノード 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}
したがって、違いは、レコードの名前と値のペアを返す代わりに、関数名と値の配列を返すことです。別のバージョンの node pg モジュールをインストールしようとしましたが、問題は解決しません。
前もって感謝します。