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

PostgreSQL中使用COPY命令如何忽略换行符与回车符?

PostgreSQL COPY FROM PROGRAM 拉取URL数据去换行解决方案

错误原因

  • 单引号转义错误:PostgreSQL字符串内嵌套单引号需要用两个单引号做转义,原有写法存在转义不规范问题
  • 工具兼容性问题:Windows系统默认没有tr命令(该命令为Linux/Unix系统原生),无法识别会导致进程退出码255
  • 遗漏回车符处理:原有写法仅删除了换行符\n,没有处理回车符\r

修复方案

方案1:适配带Unix工具的Windows环境

如果你的Windows已经安装了Git Bash、GnuWin32等包含tr命令的运行环境,直接修正转义和过滤规则即可:

COPY "routing_import_gm" ("request") FROM PROGRAM 'curl "https://maps.googleapis.com/maps/api/directions/json?origin=48.xxxxxx,+11.xxxxxx&destination=48.xxxxxx,+11.xxxxxx&departure_time=1637535600&key=**********" | tr -d ''\r\n''';

注意:需确保curl和tr的安装路径已加入Windows系统环境变量,且PostgreSQL运行的服务账号有这两个工具的执行权限。

方案2:Windows原生PowerShell实现(无需额外安装工具)

用PowerShell原生命令实现网络请求和去换行操作,兼容性更强:

COPY "routing_import_gm" ("request") FROM PROGRAM 'powershell -Command "(Invoke-WebRequest -Uri ''https://maps.googleapis.com/maps/api/directions/json?origin=48.xxxxxx,+11.xxxxxx&destination=48.xxxxxx,+11.xxxxxx&departure_time=1637535600&key=**********'' -UseBasicParsing).Content -replace ''[\r\n]'', '''' "';

调试技巧

如果执行后仍报错,可先将PROGRAM后包裹的命令单独复制到Windows CMD或PowerShell中运行,确认能正常输出无换行的JSON内容后,再放到COPY命令中执行,可快速定位问题来源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:54:03