在 Oracle 表中创建以二进制形式存储的 xml 列时出现 ORA-43853

问题描述 投票:0回答:1

我正在尝试通过以下命令在 Oracle 中创建一个表:

CREATE TABLE xml_binary (
   id    NUMBER,
   fv  XMLTYPE)
   XMLTYPE fv STORE AS BINARY XML
      XMLSCHEMA "http://www.example.com/fvInteger_binary.xsd"
      ELEMENT "ROOT";

但是,我得到错误:

ORA-43853: SECUREFILE lob 不能用于非 ASSM 表空间

我在这个论坛找到了一个解决方案,可以通过命令忽略错误:

ALTER SYSTEM SET db_securefile = '忽略;

然而,我认为这不是一个好的解决方案。

我该怎么做才能妥善解决?

提前致谢!

xml oracle binary blob oracle12c
1个回答
2
投票

Securefile 只能在 ASSM 表空间上创建。

SELECT tablespace_name,  segment_space_management
      FROM dba_tablespaces;

segment_space_management = auto = ASSM-tablespace.

db_securefile = 'IGNORE'
以这种方式工作。重启后,db会忽略SF的信息,会创建basicfile。

解决方案:

1) 将binaryxml存放在basicfile中。

XMLTYPE fv STORE AS BASICFILE BINARY XML

2) 将 binaryxml 存储在 assm 表空间的 securefile 中。

 XMLTYPE fv STORE AS securefile BINARY XML(tablespace assm_tablespace) 
© www.soinside.com 2019 - 2024. All rights reserved.