3

こんにちは、テーブル データの csv ファイルへのコピーを実行する pgsql 関数を作成しようとしていますが、以下のように関数内で変数値を使用するのが困難です。

CREATE OR REPLACE  FUNCTION test3() RETURNS void
    LANGUAGE plpgsql
    AS $$
DECLARE
_currenttime timestamp := now();
BEGIN
copy (SELECT * FROM table1 WHERE createdtime < _currenttime - INTERVAL '1 days') TO '/tmp/table1.csv';
END
$$;

関数へのアクセス中にエラーが発生します。

select test3();

エラー: 列 "_currenttime" が存在しません LINE 1: ...py (SELECT * FROM table1 WHERE createdtime < _currentti... ^ QUERY: copy (SELECT * FROM bpminstance WHERE createdtime < _currenttime - INTERVAL '1 days') TO ' /tmp/table1.csv'

あなたの親切な助けを求めてください。

4

1 に答える 1

1
CREATE OR REPLACE  FUNCTION test3() RETURNS void
    LANGUAGE plpgsql
    AS $$
 DECLARE
_currenttime timestamp;
qry text;
BEGIN
_currenttime := NOW() - interval '1 day';
select 'copy (SELECT * FROM table1 WHERE createdtime < '''||_currenttime||''') TO ''/tmp/table1.csv''' into qry;
execute qry;
--codes
END
$$;
于 2015-10-12T11:29:21.053 に答える