ORA-39312: Cannot alter tablespace encryption.

文档解释

ORA-39312: Cannot alter tablespace encryption.

Cause: DBMS_METADATA_DIFF was comparing two tablespaces, one encrypted, one not. There is no SQL ALTER statement to change the encryption property of a tablespace.

Action: The difference cannot be eliminated with an SQL ALTER statement.

ORA-39312:不能更改表空间加密。

这是一个Oracle数据库的错误,指示你不能修改表空间加密。这是因为Oracle的安全规定禁止动态更改表空间加密设置。

官方解释

ORA-39312:“无法修改表空间加密”

该错误表明用户尝试以表空间级别修改表空间加密,但不允许这样做。表空间加密只能在创建表空间时设置。

常见案例

某用户试图使用alter表空间命令更改表空间加密:

ALTER TABLESPACE TAB1 ENCRYPTS

一般处理方法及步骤

要更改表空间加密,必须创建一个新的表空间、将所有表空间中的对象复制到新表空间中、重新索引,并将旧表空间删除。

1.使用以下Create表空间命令创建受加密的表空间,注意使用ENCRYPT关键字:

CREATE TABLESPACE tab2

DATAFILE ‘blahblah.dbf’ SIZE 100M

ENCRYPT;

2.将原表空间中的对象复制到新的受加密的表空间中:

ALTER TABLE tab1 MOVE TABLESPACE tab2;

3.重新创建索引,如果需要:

CREATE INDEX tab2_idx

ON tab1 (col1);

4.删除旧的(未加密的)表空间:

DROP TABLESPACE tab1 INCLUDING CONTENTS AND DATAFILES;

你可能感兴趣的