gpt4 book ai didi

sql - 在oracle上创建空间索引

转载 作者:行者123 更新时间:2023-12-01 18:22:46 25 4
gpt4 key购买 nike

我有一个表“floating_options”,我想在“area_geo”列(这是一个 sdo_geometry 列,当我从 float_options 中选择 * 时按预期显示两行数据)上创建空间索引。

我使用了以下代码,但收到以下错误。我将非常感谢任何帮助!谢谢!

CREATE INDEX area_idx ON floating_options(area_geo)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;


Error report -
SQL Error: ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-13203: failed to read USER_SDO_GEOM_METADATA view
ORA-13203: failed to read USER_SDO_GEOM_METADATA view
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 10
29855. 00000 - "error occurred in the execution of ODCIINDEXCREATE routine"
*Cause: Failed to successfully execute the ODCIIndexCreate routine.
*Action: Check to see if the routine has been coded correctly.

最佳答案

在对表建立索引之前,您应该将其“空间启用”。
尝试检查它是否显示在空间元数据中:

SELECT * FROM USER_SDO_GEOM_METADATA
WHERE TABLE_NAME = UPPER('floating_options')
AND COLUMN_NAME = UPPER('area_geo');

如果没有结果 - 那么有几个选项可用。
一种肮脏的方式 - 直接插入数据

INSERT INTO USER_SDO_GEOM_METADATA
VALUES (UPPER('floating_options'),UPPER('area_geo'),
mdsys.SDO_DIM_ARRAY(
mdsys.SDO_DIM_ELEMENT('Easting', <lowest_x>, <highest_x>, <x_tolerance>),
mdsys.SDO_DIM_ELEMENT('Northing', <lowest_y>, <highest_y>, <y_tolerance>)
), <SRID>);

请相应地更改<占位符>

另请查看https://community.oracle.com/thread/836452?tstart=0或者 http://gerardnico.com/wiki/oracle_spatial/metadata

关于sql - 在oracle上创建空间索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com