3
我已经一个PostgreSQL存储的函数定义如下:提取结果
SELECT SessionGet('SID-1'::varchar);
的session
表:
CREATE OR REPLACE FUNCTION SessionGet(
sid varchar)
RETURNS "SESSION" AS $$
SELECT * FROM "SESSION" WHERE "SESSION_ID" = sid;
$$ LANGUAGE sql;
我使用PG模块调用它从节点被定义为:
CREATE TABLE "SESSION"
(
"SESSION_ID" character varying NOT NULL DEFAULT ''::character varying,
"SESSION" json NOT NULL DEFAULT '{}'::json,
"LAST_UPDATE" bigint DEFAULT 0,
CONSTRAINT "SESSION_PK" PRIMARY KEY ("SESSION_ID")
)
WITH (
OIDS=FALSE
);
我想检索返回结果如下:
client.query(sql, function(err, result) {
done(); // Releasing connection to the pool
if (err) {
callback(err);
} else if (result.rows.length > 0) {
var ttmp = result.rows[0];
var tmp1 = ttmp[0];
console.log("Res[0]: " + tmp1);
callback(err,result.rows[0]);
} else {
callback(err);
}
});
虽然result.rows.length
是> 0
,result.rows[0][0]
是不确定的。我如何从返回的行中检索字段值?
你确定你的函数返回一个非空值吗?使用相同的输入在'psql'中调用它并查看。 –
当我从pgAdmin'sql窗口调用函数时,得到:“(SID-1,{},10)”。 May节点的pg模块不能正确处理这个结果... – JVerstry
当我运行时:SELECT * FROM“SESSION”WHERE“SESSION_ID”='SID-1';结果出现在3个不同的colums中,而不是(,,) – JVerstry