我正在尝试通过以下命令在 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 = '忽略;
然而,我认为这不是一个好的解决方案。
我该怎么做才能妥善解决?
提前致谢!
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)