【问题标题】:concatenate additional text to string variable in pl/pgsql将附加文本连接到 pl/pgsql 中的字符串变量
【发布时间】:2018-06-24 13:27:14
【问题描述】:

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

如何将其他文本连接到已经存在的字符串变量?

谢谢

【问题讨论】:

  • 对字符串使用单引号,而不是双引号。
  • @Nicarus Yeap,就是这么简单。天哪,我是个白痴。感谢您的回答。你可以正确回答,所以我可以投票给你作为最佳答案。

标签: postgresql plsql concatenation dynamic-sql


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 2014-02-17
    • 1970-01-01
    相关资源
    最近更新 更多