我想查询包含信息列表的 PostgreSQL 数据库,以获取 MSSQL 中当前记录的简单计数。PG 服务器是 MSSQL 中的链接服务器。
我对 Postgre 知之甚少,但足够危险。我创建了一个简单的查询来驻留在函数中,如下所示:
CREATE FUNCTION get_count(id text, division text, company integer, INOUT recCount integer) AS $$
BEGIN
recCount := (SELECT COUNT(0)
FROM test.inventory
WHERE inv_id = $1 AND div_code = $2 AND cmpy_no = $3);
END;
$$ LANGUAGE plpgsql;
我可以像这样整天查询它:
SET @Query = 'SELECT test.get_count(''' + @Id+ ''', ''' + @Div + ''', ' + CAST(@Company AS VARCHAR) +', ?);'
EXEC (@Query) AT POSTGRESQLTEST;
但我不能将它分配给这样的变量:
SET @i = EXEC (@Query) AT POSTGRESQLPROD;
-- Error: Incorrect syntax near the keyword 'EXEC'.
办公室伙伴说将值存储在临时表中,查询它,然后删除它。恕我直言,效率不是很高,但它会完成工作。
那我还能做什么?如何利用 PG 服务器的 INOUT 参数 recCount?