我在postgresql中有一个列定义为REAL []类型,当我尝试在列中插入一个值时会导致错误。
值是一个数字数组,如下所示:[23.4, -45, 7895]
结果错误是:operator does not exist: real[] = numeric[]
我该怎么办?
答案 0 :(得分:0)
我强烈怀疑查询的插入部分不是问题所在:
db=# create temp table fnord ( foo numeric[] );
db=# insert into fnord values ('{23.4, -45, 7895}'::real[]);
db=# insert into fnord values ('{23.4, -45, 7895}'::real[]);
db=# select '{23.4, -45, 7895}'::numeric[] = '{12, 12, 12}'::real[];
ERROR: operator does not exist: numeric[] = real[]
LINE 1: select '{23.4, -45, 7895}'::numeric[] = '{12, 12, 12}'::real...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Time: 77.539 ms
您可能在查询中的某处进行了比较。用演员来解决这个问题,你应该没问题。