我正在尝试使用DBeaver声明一些变量并继续发出此错误。
Unterminated dollar-quoted string at or near "$$
DO $$
DECLARE A integer; B integer;
BEGIN
END$$;
有什么想法吗?
答案 0 :(得分:2)
DBeaver是个问题。切换到PGAdmin,没有更多问题。
答案 1 :(得分:1)
从DBeaver 6开始,您可以使用ALT-X(在Windows上)执行脚本,该脚本不会尝试进行涉及美元符号的变量捕获/插值。
答案 2 :(得分:0)
发布的语法很好。您的问题是客户端应用程序或驱动程序正在破坏查询,可能是因为它不理解美元引用。
可能正在尝试将其拆分为分号的单独语句,运行:
DO $$ DECLARE A integer;
B integer;
BEGIN END$$;
作为三个单独的陈述。这将导致报告的错误,例如
$ psql -c 'DO $$ DECLARE A integer;'
ERROR: unterminated dollar-quoted string at or near "$$ DECLARE A integer;"
LINE 1: DO $$ DECLARE A integer;
^
这就是在提问时必须指定客户端驱动程序/应用程序的原因。
某些客户端的另一种可能性是,它可能会将$
视为转义的查询参数占位符,并将其替换为单个$
,或尝试将其替换为服务器端占位符,如{{ 1}}。但这并不是这里发生的事情。
答案 3 :(得分:0)
DBeaver也给出此错误。 就我而言,这是在选择的计算列中一对不匹配的括号。