Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
查询静态数据字典,查看当前数据库默认的临时表空间组
SYS@PROD1> select * from database_properties where property_name= 'DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
---------------------------------------- ----------------------------------------
DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace
1 rows selected.
使用alter database句柄修改数据库默认的临时表空间组
SYS@PROD1> alter database default temporary tablespace temp_grp;
Database altered.
查询静态数据字典,证明修改成功
SYS@PROD1> select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
---------------------------------------- ---------------------------------------- ----------------------------------------------------------------------------------------------------
DEFAULT_TEMP_TABLESPACE TEMP_GRP Name of default temporary tablespace
使用alter database句柄修改数据库默认的临时表空间组,并输入一个命名规范错误的临时表空间组的值
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 'temp_grp';
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 'temp_grp' 报错,修改失败 *
ERROR at line 1:
ORA-02216: tablespace name expected
使用alter database句柄修改数据库默认的临时表空间组,并输入一个根本不存在的临时表空间组的组名
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TETE;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TETE
*
报错,修改失败
ERROR at line 1:
ORA-00959: tablespace 'TETE' does not exist
直接修改静态数据字典,来修改数据库默认的临时表空间组,并输入一个命名规范错误的临时表空间组的值
SYS@PROD1> UPDATE DATABASE_PROPERTIES SET PROPERTY_VALUE='temp_grp' where PROPERTY_NAME ='DEFAULT_TEMP_TABLESPACE'; 没有报错,且修改成功,这就是说,直接修改静态数据字典,是没有任何校验的,这样操作非常不安全!
1 row updated. 再次修改数据库磨人的临时表空间组,发现无法修改,报错
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP
* ERROR at line 1: ORA-00600: internal error code, arguments: [ktstgdi2], [], [], [], [], [], [], [], [], [], [], []
直接修改静态数据字典,并将错误的值修改回正确的值
SYS@PROD1> UPDATE DATABASE_PROPERTIES SET PROPERTY_VALUE='TEMP_GRP' where PROPERTY_NAME ='DEFAULT_TEMP_TABLESPACE';