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()
对值进行简单的布尔有效性检查。
参考文献
- PostgreSQL 文档: 数据有效性检查函数