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

Psycopg2处理含$$符号的PL/pgSQL存储过程时报错如何解决

psycopg2美元符$$解析错误修复方案

这个错误是psycopg2的SQL解析逻辑和原生PostgreSQL客户端存在差异导致的,可通过以下方法修复:

  • 方法1:使用带标签的美元引号替代默认的$$,避免解析冲突,修改后的SQL示例如下:
CREATE OR REPLACE PROCEDURE test()
AS $test_proc$
BEGIN
    select 1;
END
$test_proc$ LANGUAGE plpgsql;
  • 方法2:将美元引号替换为转义后的单引号,SQL内部的单引号使用两个单引号转义即可,示例如下:
CREATE OR REPLACE PROCEDURE test()
AS '
BEGIN
    select 1;
END
' LANGUAGE plpgsql;
  • 方法3:检查SQL语句中是否存在未转义的%字符,psycopg2会默认将单个%识别为参数占位符,如果SQL内有模糊匹配等场景的%,需要写为%%转义,避免打乱美元符的字符串边界解析。
  • 额外注意:不要用cursor.execute()一次性执行多条用分号拼接的SQL语句,拆分为单条依次执行可降低解析异常概率。

内容的提问来源于stack exchange,提问作者NotI.mportant

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:18:01