0

我已经看到双美元符号 ($$) 经常在 FUNCTION 声明和声明语句中使用。我承认它可能是一些与语法相关的功能,但我不太清楚如何/为什么使用它以及何时使用它。

下面的使用代码示例:

CREATE OR REPLACE FUNCTION BuildFunction(IN prefix TEXT, IN func_id INTEGER) RETURNS BOOLEAN AS $$
BEGIN
...
END; $$

混淆点,你如何将布尔值作为 $$ 返回,它是某种特殊类型还是什么?

DO $$
DECLARE  
   a integer := 10;  
   b integer := 20;  
   c integer;  
BEGIN  
   c := a + b;
    RAISE NOTICE'Value of c: %', c;
END $$;

此代码片段来自How do you use variables in a simple PostgreSQL script?

4

1 回答 1

1

来自精美手册

4.1.2.4。美元引用的字符串常量

虽然指定字符串常量的标准语法通常很方便,但当所需的字符串包含许多单引号或反斜杠时,可能很难理解,因为它们中的每一个都必须加倍。为了在这种情况下允许更易读的查询,PostgreSQL 提供了另一种方法,称为“美元引用”,用于写入字符串常量。用美元引用的字符串常量由一个美元符号 ($)、一个可选的零个或多个字符的“标记”、另一个美元符号、构成字符串内容的任意字符序列、一个美元符号、相同的标记组成开始这个美元报价,和一个美元符号。

美元引用是一种 PostgreSQL 特有的引用字符串的方式,它包含大量的内部单引号,而不会强迫您转义引号并造成无法阅读的混乱。所以这些是等效的字符串文字:

'R''hllor'
$$R'hllor$$

美元引用并不特定于函数,您可以将它用于任何字符串文字,但它最常见于函数定义中,如您的两个示例中所示。

于 2019-07-23T18:07:46.990 回答