You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 23c PDB中创建SDO_GEORASTER列报ORA-00902错误求助

解决Oracle 23c Free PDB中SDO_GEORASTER类型无效的问题

问题背景

使用Oracle Database 23c (23.2.0) Free Docker镜像,仅配置ORACLE_PWD、端口和数据卷后,以system用户连接:

  • 在CDB(服务名FREE)中创建含SDO_GEORASTER列的表正常
  • 在PDB(服务名FREEPDB1)中操作时触发ORA-00902: invalid datatype错误
  • SDO_GEOMETRY和SDO_TOPO_GEOMETRY类型在CDB和PDB中均可正常使用

解决方案

1. 切换到目标PDB

以SYSDBA身份连接数据库后,切换到FREEPDB1:

ALTER SESSION SET CONTAINER=FREEPDB1;

2. 执行GEORASTER配置脚本

在PDB中运行Oracle Spatial提供的GEORASTER配置脚本,初始化所需的元数据对象和权限:

@$ORACLE_HOME/md/admin/sdogrpcd.sql

注意:该脚本需要以SYSDBA权限执行,脚本会创建GEORASTER依赖的系统表、序列,并配置相关权限。

3. 验证配置

执行以下查询确认SDO_GEORASTER类型可用:

SELECT type_name FROM user_types WHERE type_name='SDO_GEORASTER';

若返回结果,则说明类型已生效,此时可以正常创建含SDO_GEORASTER列的表。

补充说明

  • Oracle 23c Free镜像中,CDB默认已安装并配置好Spatial组件,但PDB默认未初始化GEORASTER相关的元数据,因此需要手动执行配置脚本。
  • 若执行脚本后仍报错,可检查dba_registry中SDO组件的状态:
SELECT comp_id, status FROM dba_registry WHERE comp_id='SDO';

确保状态为VALID,若状态异常,可在PDB中重新运行Spatial的主安装脚本catmd.sql(需谨慎操作,避免影响现有数据)。

内容的提问来源于stack exchange,提问作者sarh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:52:49