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

如何向psql传递.sql文件执行查询?无效连接选项报错如何解决?

你报错的原因是混淆了psql的连接参数和运行参数:所有key=value格式的参数仅用于配置数据库连接信息,仅支持账号、密码、地址、端口、库名这类连接相关字段,file、command不属于连接参数,所以会报无效选项错误。

读取外部SQL文件需要使用独立的-f/--file运行参数,和连接参数分开传递即可,正确写法如下:

psql_args=(
    "password='$INPUT_PASSWORD'"
    dbname=analytics
    "host='$INPUT_HOST'"
    user=analytics
    port=32648
)
# 执行时追加-f参数指定SQL文件路径
psql "${psql_args[@]}" -f query.sql

你也可以使用标准输入重定向实现相同效果:

psql "${psql_args[@]}" < query.sql

补充注意点:

  • shell数组展开时要使用"${psql_args[@]}"而非"${psql_args[*]}",后者会把所有数组元素拼接为单个字符串,可能导致参数解析异常。
  • 如果需要执行多个SQL文件,可依次添加多个-f 文件路径参数,psql会按传入顺序执行文件内的语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:45:08