PreparedStatement (Java) 使用 Oracle SDO_RELATE()

问题描述

我想从 Oracle 数据库表中查询带有空间参考的行。 据我所知,使用准备好的语句(Java)是最有效的方法,也可以防止 sql 注入。 然而,准备好的语句只允许更改变量而不是列。在 sdo_relate 的情况下,sdo_relate 函数就像一个列。如何在 Java 中使用绑定变量(使用 ? 作为占位符)来替换 SDO_ORDINATE_ARRAY() 中的坐标?

SELECT *
FROM exampletable 
WHERE SDO_RELATE(footprint,SDO_GEOMETRY(2003,NULL,SDO_ELEM_INFO_ARRAY(1,1003,3),SDO_ORDINATE_ARRAY(1.0546875,41.50857729743939,23.906249999999996,54.05938788662357)),'mask=anyinteract') = 'TRUE'; 

我想做什么:

SELECT *
FROM exampletable 
WHERE SDO_RELATE(footprint,SDO_ORDINATE_ARRAY(?,?,?)),'mask=anyinteract') = 'TRUE'; 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)