Oracle 23ai执行SEM_APIS.CREATE_SEM_NETWORK报错ORA-13199求助
Oracle 23ai 创建私有Schema语义网络报错排查
在VirtualBox虚拟机运行Oracle 23ai Free(版本23.4.0.24.05),遵循官方指南创建私有Schema语义网络时,执行SEM_APIS.CREATE_SEM_NETWORK报错。
执行的操作步骤
[oracle@localhost ~]$ sqlplus Enter user-name: sys as sysdba Enter password: oracle Connected to: Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free Version 23.4.0.24.05 SQL> CREATE TABLESPACE rdf_tblspace DATAFILE 'rdf_tblspace.dat' SIZE 1024M REUSE AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED SEGMENT SPACE MANAGEMENT AUTO; Tablespace created. SQL> CREATE USER rdfuser IDENTIFIED BY Password99 QUOTA 5G ON rdf_tblspace; User created. SQL> GRANT CONNECT, RESOURCE, CREATE VIEW TO rdfuser; Grant succeeded. SQL> CONNECT rdfuser/Password99 Connected. SQL> EXECUTE SEM_APIS.CREATE_SEM_NETWORK('rdf_tblspace', network_owner=>'rdfuser', network_name=>'rdfnetwork');
报错详情
BEGIN SEM_APIS.CREATE_SEM_NETWORK('rdf_tblspace', network_owner=>'rdfuser', network_name=>'rdfnetwork'); END; * ERROR at line 1: ORA-13199: Error during RDF Network creation: step_num=2.2 ORA-04067: not executed, package body "SYS.SDO_RDF_SYS" does not exist ORA-06508: PL/SQL: could not find program unit being called: "SYS.SDO_RDF_SYS" RDF_EBTRC [ ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 32175 ] ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 33028 ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 33002 ORA-06512: at "MDSYS.MD", line 1723 ORA-06512: at "MDSYS.MDERR", line 17 ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 32987 ORA-06512: at "MDSYS.SDO_RDF_INTERNAL", line 33024 ORA-06512: at "MDSYS.SDO_RDF", line 19006 ORA-06512: at "MDSYS.SDO_RDF", line 19040 ORA-06512: at "MDSYS.RDF_APIS", line 3206 ORA-06512: at line 1
问题分析
报错核心是ORA-04067,说明RDF功能依赖的核心包体SYS.SDO_RDF_SYS不存在,大概率是安装时未包含语义数据相关组件,或组件未正确初始化。
可能遗漏的操作步骤及解决方法
- 检查并安装Spatial and Graph组件:Oracle语义数据功能属于Spatial and Graph组件,默认安装可能未勾选。需重新运行Oracle安装程序,选择添加该组件。
- 手动执行RDF组件初始化脚本:
- 切换到Oracle安装目录的
rdbms/admin路径:cd $ORACLE_HOME/rdbms/admin - 以
sys as sysdba身份登录SQL*Plus,执行初始化脚本:@catrdf.sql
- 切换到Oracle安装目录的
- 补充用户权限:除已授予的权限外,需给rdfuser授予RDF管理相关权限:
GRANT SEM_ADMIN TO rdfuser;
内容的提问来源于stack exchange,提问作者Arturs
相关产品推荐
相关产品推荐

