PostgreSQL 42P18: indeterminate_datatype 报错 故障修复 远程处理
文档解释
42P18: indeterminate_datatype
错误说明
错误“indeterminate_datatype” 是意即在PostgreSQL中定义的数据类型的未知性,也称为未知(undecided)数据类型。它通常发生在一个表中存在多个列具有不同的数据类型时。为了避免在查询过程中抛出这个错误,表单应该写正确的相关语句,且在每一列和每一表都应该正确指定列的数据类型。
常见案例
当我们在一个表中定义若干个列时,并且指定了每一列的数据类型,但是其中一个列在查询处理时却没有选择正确的数据类型时,就会抛出此错误。此错误的发出是由于PostgreSQL框架的设计,它会在表单编译完成后,前去表单中某列的数据类型是否有效。
解决方案
最佳的解决方案是遵守列的数据类型的规范,确保每一列的数据类型在SQL中都正确定义,有效的数据类型才能够正确的引用。当定义表时,使用ALTER TABLE语句来修改表单中列的数据类型。或者,您也可以使用DROP COLUMN语句,将与indeterminate_datatype 错误有关的列删除,再添加上正确的列并使用正确的数据类型。
另一种解决方法是使用CASE表达式。CASE表达式是基于列列值对其进行类型转换,可以使用CAST将字符串和数字强制转换成需要的数据类型,像这样:
CASE WHEN = 1 THEN CAST( AS INTEGER) ELSE CAST( AS DOUBLE PRECISION) END
可以使用函数如果字段的类型用于给表一个新的数据类型,像这样:
ALTER TABLE
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341