【Java报错】GP数据库 function point(unknown) is not unique.Could not choose a best candidate function 问题解决
生活随笔
收集整理的這篇文章主要介紹了
【Java报错】GP数据库 function point(unknown) is not unique.Could not choose a best candidate function 问题解决
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.問題說明
方法是要查詢坐標所在的區域:
// 前臺獲取的經緯度坐標String coordinates = longitude + "," + latitude;Map<String, Object> parameter = new HashMap<>(2);parameter.put("coordinates", coordinates);// 調用 mapper 內的方法List<Map<String, Object>> list = commonMapper.getDivisionInfoByCoordinates(parameter);下面是 Mapper 文件內的 SQL:
<!--判斷坐標地址所在的區劃--><select id="getDivisionInfoByCoordinates" resultType="map" parameterType="map">SELECTid,ext_path AS "divisionInfo"FROMdata_administrative_divisions_geoWHEREpoint( #{coordinates} ) <![CDATA[<@]]> polygon( PATH ( polygon ) )ORDER BYdeep DESC</select>查詢報錯:
Consume Time:2 ms 2022-02-21 16:20:35 Execute SQL: SELECT id, ext_path AS "divisionInfo" FROM data_administrative_divisions_geo WHERE point( '114.612966,34.74828' ) <@ polygon( PATH ( polygon ) ) ORDER BY deep DESCError querying database. Cause: java.sql.SQLSyntaxErrorException: [Pivotal][Greenplum JDBC Driver][Greenplum]function point(unknown) is not unique. Could not choose a best candidate function. You might need to add explicit type casts.將 p6spy 打印出來的 SQL 粘貼到 Navicat 內執行,可以獲取結果 😢
2.問題解決
方法 1?? 把point( #{coordinates} )修改為point( ${coordinates} )也就是 # --> $ 也就是函數的入參變為數值,數值:
<!--判斷坐標地址所在的區劃--><select id="getDivisionInfoByCoordinates" resultType="map" parameterType="map">SELECTid,ext_path AS "divisionInfo"FROMdata_administrative_divisions_geoWHEREpoint( ${coordinates} ) <![CDATA[<@]]> polygon( PATH ( polygon ) )ORDER BYdeep DESC</select>方法 2?? 把point( #{coordinates} )修改為CAST ( #{coordinates} AS POINT ),這種方法跟提示信息 You might need to add explicit type casts. 您可能需要添加顯式類型轉換。是一致的:
<!--判斷坐標地址所在的區劃--><select id="getDivisionInfoByCoordinates" resultType="map" parameterType="map">SELECTid,ext_path AS "divisionInfo"FROMdata_administrative_divisions_geoWHERECAST ( #{coordinates} AS POINT ) <![CDATA[<@]]> polygon( PATH ( polygon ) )ORDER BYdeep DESC</select>總結
以上是生活随笔為你收集整理的【Java报错】GP数据库 function point(unknown) is not unique.Could not choose a best candidate function 问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pinpoint【环境搭建 01】JDK
- 下一篇: JVM【带着问题去学习 01】什么是JV