to_regtypemod()

将类型名称转换为其修饰符的函数

to_regtypemod() 是一个用于从数据类型中提取修饰符的系统函数,例如 charvarchar 类型的长度。

to_regtypemod()PostgreSQL 17 中添加。

用法

to_regtypemod ( text ) → integer

返回值是修饰符的内部表示,可以与 format_type() 一起传递,以及来自 to_regtype() 的输出,以生成数据类型的人类可读名称。

如果不存在修饰符,则返回 -1

如果提供的数据类型定义不存在但语法有效,则返回 NULL

如果提供的数据类型语法无效,则会引发 ERROR

更改历史记录

示例

to_regtypemod() 的基本用法示例

postgres=# SELECT to_regtypemod('varchar(32)');
 to_regtypemod 
---------------
            36
(1 row)

使用 format_type() 的示例

postgres=# WITH datatype AS (
  SELECT 'numeric( 3, 2 )' AS type
)
SELECT format_type(
         to_regtype(d.type),
         to_regtypemod(d.type)
       )
  FROM datatype d;
 format_type  
--------------
 numeric(3,2)
(1 row)

如果不存在修饰符,则返回 -1

postgres=# SELECT to_regtypemod('smallint');
 to_regtypemod 
---------------
            -1
(1 row)

如果提供的值在语法上有效,但不表示数据类型,则返回 NULL

postgres=# SELECT to_regtypemod('varchar2(255)') IS NULL;
 ?column? 
----------
 t
(1 row)

不正确的语法会导致引发 ERROR

postgres=# SELECT to_regtypemod('!') IS NULL;
ERROR:  syntax error at or near "!"
LINE 1: SELECT to_regtypemod('!') IS NULL;
        ^
CONTEXT:  invalid type name "!"

分类

数据类型系统函数

另请参阅

to_regtype()format_type()

反馈

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