Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 甲骨文空间。与区域类型特征空间相关的线型特征起点(sdo_anyinteract)_Sql_Oracle_Spatial - Fatal编程技术网

Sql 甲骨文空间。与区域类型特征空间相关的线型特征起点(sdo_anyinteract)

Sql 甲骨文空间。与区域类型特征空间相关的线型特征起点(sdo_anyinteract),sql,oracle,spatial,Sql,Oracle,Spatial,我正在尝试使用oracle spatial选择与VARAMAL(线型特征)的起点相关的空间实体VAZMC(面积类型特征) 请查看下图,查看上述实体的图形表示: 使用以下代码: 选择pk.IPID作为IPID\u VARAMAL,pk.CODIGO\u patricial作为code\u VARAMAL,da.IPID作为IPID\u VAZMC,da.CODIGO\u ZMC作为code\u VAZMC,其中sdo\u anyinteractive(da.GEOMETRY,pk.GEOMETR

我正在尝试使用oracle spatial选择与VARAMAL(线型特征)的起点相关的空间实体VAZMC(面积类型特征)

请查看下图,查看上述实体的图形表示:

使用以下代码:


选择pk.IPID作为IPID\u VARAMAL,pk.CODIGO\u patricial作为code\u VARAMAL,da.IPID作为IPID\u VAZMC,da.CODIGO\u ZMC作为code\u VAZMC,其中sdo\u anyinteractive(da.GEOMETRY,pk.GEOMETRY)=“TRUE”

我得到以下结果(N:M表)

我需要做一个等价的空间查询,考虑VARAMAL的起点,这样我将在两个实体之间始终保持1:1的关系

这是同等的桌子

注意:我可以在GIS环境中执行此操作。首先,我从该行获取起点,然后使用空间查询获得所需的结果


我想使用sql文件(通过sql Plus)进行一些自动化操作并一次性获得最终结果。

Pedo,尝试使用sdo_util.extract获取行的第一个元素,并在查询中使用它代替pk.geometry:sdo_anyinteract(da.geometry,sdo_util.extract(pk.geometry,1,0))亲爱的gsalem,你的建议很有道理——非常感谢。然而,不幸的是,从我的测试中,我得到了同样的结果。如果一条线跨越n个区域,空间查询将返回n个结果(每个区域1个)最佳regardsPedro,ca,n添加修改后的SQL?选择pk.IPID作为IPID_VARAMAL,pk.CODIGO_paterialial作为CODE_VARAMAL,da.IPID作为IPID_VAZMC,da.CODIGO_ZMC作为CODE_VAZMC从VARAMAL pk,VAZMC da其中sdo_anyinteract(da.GEOMETRY,sdo_util.extract(pk.GEOMETRY,1,0))='正确'。从sdo_util.extract文档中,我认为该函数返回的几何图形包含多个元素(事实并非如此:它是3001 gtype,只有一个元素)Pedro,请尝试使用getfirstvertex,例如:sdo_geometry(2001,null,sdo_point_type)(sdo_util.getfirstvertex(pk.geometry).X,sdo_util.getfirstvertex(pk.geometry).y,null),空,空)