将附加文本连接到pl / pgsql

时间:2018-01-15 21:43:17

标签: postgresql plsql concatenation dynamic-sql

我正在使用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;

所以,我希望最终mywheredyn_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

如何将其他文本连接到现有的字符串变量?

谢谢

1 个答案:

答案 0 :(得分:2)

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

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

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