1

我需要上传格式为 File_[currentDate]_[currentMonth]_name.tsv 的 *.tsv 文件。我尝试了很多方法,可悲的是徒劳无功,我必须要求分隔符,否则正确执行此操作的方法:

SELECT CURRENT_DATE AS today;
SELECT EXTRACT(MONTH FROM TIMESTAMP 'today') AS MONTH;
SELECT EXTRACT(DAY FROM TIMESTAMP 'today') AS DAY;

COPY table_name FROM 'D:\File_**<DAY>**_**<MONTH>**_name.tsv' DELIMITER '   ' CSV header;

我期望输入文件名是 File_19_04_name.tsv(今天)。我究竟做错了什么?有什么办法可以做对吗?

4

1 回答 1

1

在 plpgsql 函数中动态构建和执行COPY命令:

create or replace function cp()
returns text language plpgsql as $function$
begin
    execute $$
        COPY t
        FROM '$1'
        DELIMITER '   '
        CSV header
    $$ using 'D:\File_' || to_char(current_date, 'DD_MM') || '_name.tsv';
end;
$function$;

$1将被传递的参数替换using

于 2013-04-19T12:26:45.640 回答