4

我最近将我的数据库从 MySQL 切换到 PostGres。我也使用 GeoKit。当我使用已经播种的新数据库启动我的应用程序时,我收到以下错误:

PGError: ERROR:  function radians(character varying) does not exist
LINE 1: ...COS(0.661045389762993)*COS(-2.12957994527573)*COS(RADIANS(ti...
                                                         ^
HINT:  No function matches the given name and argument types. You might 
need to add explicit type casts.

任何人都知道为什么这会打破现在?我知道 GeoKit 仍然有效,因为在为数据库播种时,它仍在按票证的模型中执行地理编码,它只是无法正确进行距离计算。

4

2 回答 2

12

对于那些在搜索中查找此答案的人来说,问题在于 Postgresql 要求 lat、lng 列是十进制或至少是非字符串,而 MySQL 允许同时使用这两者。

于 2010-05-16T03:27:37.593 回答
2

不出所料,“弧度”函数需要一个 DOUBLE PRECISION 参数。并且没有为 TEXT/CHARACTER VARYING(又名 VARCHAR)定义为双精度的转换。

可能最简单的解决方案是定义这样的演员表。

于 2010-05-12T11:13:35.923 回答