pg_input_error_info()

返回数据类型无效值的错误消息的函数

pg_input_error_info() 是一个系统函数,它返回如果提供的值为指定数据类型无效时将发出的错误消息。

pg_input_error_info()PostgreSQL 16 中添加。

用法

pg_input_error_info ( string text, type text ) → 
         record ( message text, detail text, hint text, sql_error_code text )

如果提供的字符串对于指定的数据类型无效,则会发出 PostgreSQL 将返回的消息,但是不会引发 ERROR

如果提供的字符串对于指定的数据类型有效,则返回 NULL

pg_input_is_valid() 提供了一个简单的布尔有效性测试。

更改历史记录

示例

pg_input_error_info() 的用法示例

postgres=# SELECT * FROM pg_input_error_info('3.14', 'integer')\gx
-[ RECORD 1 ]--+----------------------------------------------
message        | invalid input syntax for type integer: "3.14"
detail         | 
hint           | 
sql_error_code | 22P02

postgres=# SELECT * FROM pg_input_error_info('3.14', 'numeric(1,2)')\gx
-[ RECORD 1 ]--+-----------------------------------------------------------------------------------
message        | numeric field overflow
detail         | A field with precision 1, scale 2 must round to an absolute value less than 10^-1.
hint           | 
sql_error_code | 22003

如果提供的字符串对于指定的数据类型有效,则所有返回的字段都为 NULL

postgres=# SELECT * FROM pg_input_error_info('3.14', 'text');
 message | detail | hint | sql_error_code 
---------+--------+------+----------------
         |        |      | 
(1 row)

使用 pg_input_is_valid() 对值进行简单的布尔有效性检查。

分类

数据类型系统函数测试

另请参阅

pg_input_is_valid()

反馈

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