在Postgresql中使用带变量的转义字母
我正在使用触发器更新记录 我试过了在Postgresql中使用带变量的转义字母,postgresql,postgresql-9.1,Postgresql,Postgresql 9.1,我正在使用触发器更新记录 我试过了 CREATE OR REPLACE FUNCTION fn_trg_sales2() RETURNS trigger AS $BODY$ declare xNarr text=''; select name into xNarr from t1 where id =1; update t2 set narration =E narration || case when narration ='' then xNarr else '\n'
CREATE OR REPLACE FUNCTION fn_trg_sales2()
RETURNS trigger AS
$BODY$ declare
xNarr text='';
select name into xNarr from t1 where id =1;
update t2 set narration =E narration || case when narration ='' then xNarr else
'\n' || xNarr end where id=1
return null;
end;
$BODY$
上面的程序显示错误
如何使用变量在此更新查询中使用转义字符?
如何将转义字符与变量一起使用?。不要建议使用转义字符来表示out变量
我正在使用postgresql 9.1
编辑
我从某个命令中获取信息,所以我在触发器中像这样更新
update t2 set narration =narration || case when narration ='' then xNarr else
quote_literal('\n') || xNarr end where id=1
现在它在表中显示为两行,但其结尾和开头为'
像
如何在不使用单个qotation的情况下进行存储?如中所述,包含带反斜杠的转义序列的字符串必须以E
开头,如E'line1\nline2'
或E'\n'
仅用于换行
此E
语法自PostgreSQL 9.1在其默认配置中关于标准一致性字符串
以来已成为强制性的,正如文档中在同一位置警告的那样:
如果配置参数标准\u符合\u字符串为off,
然后,PostgreSQL识别正则和正则表达式中的反斜杠转义
转义字符串常量。但是,从PostgreSQL 9.1开始,默认值为
启用,意味着反斜杠转义只能在转义中识别
字符串常量。此行为更符合标准,但可能会中断 依赖于历史行为的应用程序,其中反斜杠 逃跑总是被认出的
quote\u literal
函数用于在将SQL语句输入SQL解释器之前以编程方式构建SQL语句,这就是其结果包含单引号的原因。此函数不是必需的,对您的用例没有帮助
narration
this is first'
'this is second