MSSQL 内からの現在のレコードの単純なカウントについて、情報のリストを含む PostgreSQL データベースにクエリを実行したいと考えています。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 を利用するにはどうすればよいですか?