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}