在psql命令行中连接字符串路径

时间:2018-08-21 12:33:14

标签: sql postgresql psql

我必须在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语句,但失败了。

1 个答案:

答案 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;