如何解决ORA-43856:SECUREFILE LOB操作的不支持的LOB类型

时间:2013-12-06 20:01:40

标签: oracle blob

根据我正在谈论的Oracle服务器,相同的create table DDL语句可能成功或失败:

在服务器#1上

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> create table h5basic (b blob) lob(b) store as basicfile;
Table created.

SQL> create table h5basic$none (b blob) lob(b) store as basicfile (retention none);
create table h5basic$none (b blob) lob(b) store as basicfile (retention none)
*
ERROR at line 1:
ORA-43856: Unsupported LOB type for SECUREFILE LOB operation

在服务器#2上

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> create table h5basic (b blob) lob(b) store as basicfile;
Table created.

SQL> create table h5basic$none (b blob) lob(b) store as basicfile (retention none);
Table created.

这两个服务器的版本并不完全相同,第一个在Linux上运行而第二个在Windows上运行,但是从那个开始,两者之间可能有什么不同来解释这种行为差异?感谢您解决此问题的任何提示。 --DD

2 个答案:

答案 0 :(得分:1)

有些选择是:

  1. 检查init.ora文件以查看db_securefile参数的设置是否不同 - 允许的值为:{ ALWAYS | FORCE | PERMITTED | NEVER | IGNORE }(有关详情,请参阅here)。
  2. 检查表空间是否都是ASSM(参见here):SecureFile只能在自动段空间管理(ASSM)表空间中创建。

答案 1 :(得分:0)

使用对我有用的解决方案:

sqlplus / as sysdba

sql>更改系统集db_securefile ='PERMITTED';