将附加文本连接到 pl/pgsql 中的字符串变量

问题描述 投票:0回答:1

我正在使用 pl/pgsql,我正在尝试做一些类似的事情

myvar+="additional text"

这就是我所做的

mywhere := 'dyn_tab2.id=$1';
IF fk IS NOT NULL
THEN
mywhere := mywhere || "AND dyn_tab2.fk_id=$2";
END IF;

所以,我希望最终的

mywhere
dyn_tab2.id=$1 AND dyn_tab2.fk_id=$2
,但我收到以下错误

ERROR:  column "AND dyn_tab2.fk_id=$2" does not exist
LINE 1: SELECT mywhere || "AND dyn_tab2.fk_id=$2"
                          ^
QUERY:  SELECT mywhere || "AND dyn_tab2.fk_id=$2"
CONTEXT:  PL/pgSQL function __aa(integer,integer) line 12 at assignment
SQL state: 42703

如何将附加文本连接到已存在的字符串变量?

谢谢你

postgresql concatenation plpgsql dynamic-sql
1个回答
10
投票

您必须在字符串周围使用单引号,而不是双引号,如下所示:

mywhere := mywhere || 'AND dyn_tab2.fk_id=$2';

双引号用于指示对象,例如列。

© www.soinside.com 2019 - 2024. All rights reserved.