本章将讨论如何在 PL/pgSQL 编程中使用以美元符号作为引号的字符串常量。
背景
SELECT '你好,世界';
当字符串本身包含单引号时,需要进行转义:
SELECT '他说:''你好,世界''。';
以美元符号作为引号
语法:
$tag$<字符串常量>$tag$
tag
:可选,可以是零个或多个字符串字符串常量
:可以放置任何字符,包括单引号、反斜杠等
SELECT $$目录:c:\'Program Files'\Google$$;
上例中,我们没有设置 tag
,我们可以设置 tag
试试:
SELECT $dir$目录:c:\'Program Files'\Google$dir$;
此例中,我们设置 tag
为 dir
。
为简化描述,我们将”以美元符号作为引号“简称为”美元引号“或者”DQ“
在匿名块中使用美元引号
do
'declare
film_count integer;
begin
select count(*) into film_count
from film;
raise notice ''The number of films: %'', film_count;
end;';
-
你可以在后续章节了解匿名块。你可以把以上代码复制到
psql
或dbeaver
中执行 -
raise notice ''The number of films: %'', film_count;
为了避免频繁的转义带来复杂度和出错概率,我们使用美元引号来代替:
do
$$
declare
film_count integer;
begin
select count(*) into film_count
from film;
raise notice 'The number of films: %', film_count;
end;
$$