SQL 通过 Windows 批次执行的查询:缺少 table

SQL query executed through Windows batch: missing table

我在 Windows 批处理中通过 psql.exe 执行了一个 SQL 查询(对于 PostgreSQL)。我收到一个我无法解释的错误,说查询中未调用的 table 缺少 FROM 子句(见下文)。当我在批处理文件中搜索 geo_c3_0_3_mo table 时,找不到字符串...

对这类问题有什么想法吗?


编辑:

如果我将批处理文件中的查询复制粘贴到 pgAdminIII SQL 查询 window,查询运行完美并且没有返回错误消息。

当我删除其中一个子查询时,错误要么消失,要么提到另一个写得不好的 table 名称(例如:missing FROM-clause for table "geoc__0_3_mo")... 似乎更多更多的是问题来自行的长度(19,413 个字符!)。对我来说,不可能在批处理文件中将查询写在多行中,就像在 pgAdminIII SQL 查询 window 中一样。解决方案是将查询保存在 *.sql 文件中并从批处理文件中调用该文件。

将查询写入批处理中的临时文件,然后使用 psql -f 执行它。这将绕过命令行长度问题。