我必须在psql命令行中合并路径目录和实际时间。 此绝对路径效果很好:
\copy (select row_to_json(row(column1,column5)) from testdatabase.test) TO 'C:\Users\path\file.json';
但是当我想像这样合并两个字符串时:
\copy (select row_to_json(row(column1,column5)) from testdatabase.test) TO 'C:\Users\path\' || to_char(now(), 'YYYY_MM_DD');
我得到许可被拒绝。我认为这是权限问题,因为第一个请求在相同路径上效果很好。我也尝试了CONCATE语句,但失败了。
答案 0 :(得分:0)
如果可以直接使用COPY
,则可以动态构建命令,包括自定义路径逻辑和EXECUTE
。例如,在匿名DO
块中:
DO
$$
BEGIN
EXECUTE 'COPY (SELECT row_to_json(...) ...) TO ''C:\...\' || to_char(now(), 'YYYY_MM_DD') || '.json''';
END;
$$
LANGUAGE plpgsql;