You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL:psql调用SQL脚本时向COPY传递动态文件路径的问题

问题原因

你的代码报错核心是字符串拼接逻辑位置错误:format格式串内的%L会自动为传入的变量值添加单引号,你把路径拼接写在格式串内部,会生成类似COPY ... FROM 'v1_value' || 'my/file/path.csv'的非法语法,COPY语句不支持这种字符串拼接写法。

解决方法

方案1:调整format拼接逻辑

把路径拼接放到format的参数侧,生成完整路径后再格式化:

SELECT format(
      $$COPY mytable(mycolumns) FROM %L$$,
      :v1 || 'my/file/path.csv'
   ) \gexec

方案2:先声明psql变量再调用

如果路径需要复用,可以先拼接完整路径存入psql变量,直接调用即可:

-- 拼接完整路径
\set full_file_path :v1 'my/file/path.csv'
-- 直接执行COPY
COPY mytable(mycolumns) FROM :'full_file_path';

内容的提问来源于stack exchange,提问作者chrismarx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 12:06:02