quote_literal()

将任意输入格式化为 SQL 字符串字面量的函数

quote_literal() 是一个系统函数,它将任意输入格式化为适当的带引号和转义的 SQL 字符串字面量。

quote_literal()PostgreSQL 7.1 中添加。

用法

quote_literal ( text ) → text
quote_literal ( anyelement ) → text

quote_literal() 通常与 quote_nullable()quote_ident() 一起在 PL/pgSQL 中使用,以使用变量生成动态查询。

更改历史记录

示例

quote_literal() 的基本用法示例

postgres=# SELECT quote_literal(1.2), quote_literal(array[1,2]);
 quote_literal | quote_literal 
---------------+---------------
 '1.2'         | '{1,2}'
(1 row)

PL/pgSQL 中使用

postgres=# CREATE TABLE foo (val TEXT);
CREATE TABLE

postgres=# CREATE OR REPLACE FUNCTION littest (
               someval TEXT
             )
             RETURNS VOID
             LANGUAGE plpgsql
           AS $$
             BEGIN
               EXECUTE 'INSERT INTO foo VALUES (' || quote_literal(someval) || ')';
             END;
           $$;
CREATE FUNCTION

postgres=# SELECT littest('bar');
 littest 
---------
 
(1 row)

postgres=# SELECT * FROM foo;
 val 
-----
 bar
(1 row)

请注意,在上面的示例中,如果 someval 可能会包含 NULL 值,则应使用 quote_nullable(),否则在连接的 EXECUTE 字符串中出现 NULL 值将导致整个字符串变为 NULL 并引发错误。

分类

字符串操作系统函数

另请参阅

quote_nullable()quote_ident()

反馈

提交任何关于 "quote_literal()" 的评论、建议或更正 此处