22P02: invalid_text_representation
PostgreSQL含义
转换时文本值不是目标数据类型的有效表示形式。例如,尝试将文本 'abc' 转换为 integer 会引发该错误。
原因
向数值列/参数发送了非数字文本;将空字符串('')转换为数字/日期;UUID 或 enum 的文本无效;JSON 格式错误;输入数据不符合预期格式。
解决方法
确认被转换的值确实有效。在类型转换前于应用中校验输入。将空字符串转换为 NULL:NULLIF(value, '')。在 PostgreSQL 16+ 上进行安全转换时,事先用 pg_input_is_valid('abc', 'integer') 测试该值,并用 pg_input_error_info() 获取错误详情;在旧版本上,考虑使用校验检查(正则表达式)。逐步缩小范围找出有问题的行。