to_regtypemod()

用于从数据类型中提取修饰符的函数

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

to_regtypemod()PostgreSQL 17 中添加。

用法

to_regtypemod ( text ) → integer

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

如果不存在修饰符,则返回 -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()”的任何评论、建议或更正 此处