0

问题:

当以系统用户身份连接时,从 SQL Plus 或 SQL Developer运行以下代码时,我收到以下 ORA 错误。我的 Oracle 18.3 企业版数据库上的系统用户具有 DBA 角色。

代码:

--
--From the Oracle 18c manual E83707-04_xml-db-developers-guide.pdf
--Example 34-2 Updating the Configuration File Using CFG_UPDATE and CFG_GET
--
DECLARE
   v_cfg XMLType;
BEGIN
   SELECT XMLQuery
          (
          'declare default element namespace "http://xmlns.oracle.com/xdb/xdbconfig.xsd";
          copy $i := $cfg
          modify for $j in $i/xdbconfig
          return
             (
             replace value of node $j/descendant::ftp-port with "2121",
             replace value of node $j/descendant::http-port with "19090"
             )
          return $i'
          PASSING DBMS_XDB_CONFIG.cfg_get() AS "cfg"
          RETURNING CONTENT
          )
   INTO v_cfg FROM DUAL;
   DBMS_XDB_CONFIG.cfg_update(v_cfg);
END;
/

Error report -
ORA-31113: XDB configuration may not be updated with non-schema compliant data
ORA-06512: at "XDB.DBMS_XDB_CONFIG", line 21
ORA-06512: at line 19
31113. 00000 -  "XDB configuration may not be updated with non-schema compliant data"
*Cause:    An attempt was made to update the XDB configuration resource with
           non-schema or non-schema compliant data.
*Action:   Check the document to make sure it is schema based and schema
           compliant.

我正在执行 Oracle 18c 手册 E83707-04_xml-db-developers-guide.pdf 中编写和描述的示例匿名块,示例 34-2 使用 CFG_UPDATE 和 CFG_GET 更新配置文件

我想使用此代码更新 XDB 协议参数,如 XDBConfig.xml 中所示。

这是一个使用默认 XDBConfig.xml 的新数据库实例。

有任何想法吗。

4

0 回答 0