PostgreSQL parse_ident() 函数使用指南
PostgreSQL parse_ident() 函数将参数拆分成一个标识符的数组,同时删除单个标识符两端的引号。如果启用了严格模式,最后一个标识符之后的其他字符将会导致一个错误。如果未启用严格模式,parse_ident() 将会忽略额外的字符。
parse_ident() 语法
这是 PostgreSQL parse_ident() 函数的语法:
parse_ident (qualified_identifier)
或者
parse_ident (qualified_identifier, strict_mode)
参数
qualified_identifier- 必需的。 文本类型。 一个合格的标识符。
strict_mode- 可选的。 布尔类型。 是否启用严格模式。默认是
true.
返回值
PostgreSQL parse_ident() 函数返回一个数组,其中包含了从 qualified_identifier 拆分而来的所有标识符。
以下情况将会导致一个错误:
qualified_identifier不是以一个有效的标识符开头会导致一个错误。- 严格模式下,最后一个标识符之后的其他字符将会导致一个错误。
若参数为 NULL,该函数将返回 NULL。
parse_ident() 示例
基本用法
这个示例说明了如果使用 parse_ident() 函数拆分合格的标识符。
SELECT parse_ident('"SomeSchema".someTable');
parse_ident
------------------------
{SomeSchema,sometable}如果单独的标识符两端的引号不能去掉,则引号会被保留:
SELECT parse_ident('"SomeSchema"."some Table"');
parse_ident
---------------------------
{SomeSchema,"some Table"}严格模式
默认情况下,parse_ident() 使用严格模式,也就是说,您必须使用一个合格的标识符作为参数,否则会发生错误。
SELECT parse_ident('"SomeSchema"."someTable"Error');
这里会产生一个错误: ”错误: 字符串不是一个合法的标识符:““SomeSchema”.“someTable"Error”“。
如果不使用严格模式,parse_ident() 会忽略调最后的错误字符。我们可以传入 strict_mode 参数设置为 false 来禁用严格模式。如下:
SELECT parse_ident('"SomeSchema"."someTable"Error', false);
parse_ident
------------------------
{SomeSchema,someTable}