【问题标题】:How to solve the error of psql: Argument list too long如何解决 psql 的错误:Argument list too long
【发布时间】:2020-07-31 11:00:03
【问题描述】:

我正在使用 PostgreSQL 编写 bash 脚本。我有这一行:

psql -h $PGHOST -p $PGPORT -U $PGUSER -d $PGDATABASE -c "SELECT COUNT(*) FROM (${SQL%?}) AS query;" | grep '-' -A1 | grep -v '-' )

当我通过小查询时它可以工作,但是对于一些查询它会给我这个错误。

/usr/bin/psql: Argument list too long

这个错误意味着什么?如何增加参数列表的大小?

【问题讨论】:

  • 恭喜您刚刚达到 ARG_MAX。在此论坛中查找/搜索argument list too long
  • 该限制实际上无法更改。这是操作系统的限制。
  • 参数是什么意思?是关系名称吗?还是结果元组?

标签: bash postgresql arguments psql


【解决方案1】:

我认为这通常是操作系统硬编码的限制。

你是如何设置环境变量 SQL 的?与其将 SQL 设置为一个巨大的字符串,然后使用 psql -c "...",您可以让那个巨大字符串的生成器将它流式传输到 |psql 吗?

【讨论】:

  • 我没有设置环境变量,我正在使用别人拥有的服务器。
猜你喜欢
  • 2022-12-19
  • 1970-01-01
  • 2017-02-18
  • 2012-01-27
  • 1970-01-01
  • 2016-01-25
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
相关资源
最近更新 更多