以美元符号作为引号的字符串常量

本章将讨论如何在 PL/pgSQL 编程中使用以美元符号作为引号的字符串常量。

背景

在 PostgreSQL 中,当使用字符串时,需要使用单引号:

SELECT '你好,世界';

当字符串本身包含单引号时,需要进行转义:

SELECT '他说:''你好,世界''。';

为了减少转义,让字符串常量更具可读性,PostgreSQL 加入了使用以美元符号作为引号的语法。

以美元符号作为引号

$tag$<字符串常量>$tag$
  • tag:可选,可以是零个或多个字符串
  • 字符串常量:可以放置任何字符,包括单引号、反斜杠等
SELECT $dir$目录:c:\'Program Files'\Google$dir$;

此例中,我们设置 tagdir

在匿名块中使用美元引号

do 
'declare
   film_count integer;
begin 
   select count(*) into film_count
   from film;
   raise notice ''The number of films: %'', film_count;
end;';

为了避免频繁的转义带来复杂度和出错概率,我们使用美元引号来代替:

do 
$$
declare
   film_count integer;
begin 
   select count(*) into film_count
   from film;
   raise notice 'The number of films: %', film_count;
end;
$$
要查看完整内容,请先登录