表空间用户相关的东西
遇到一个删除表空间失败的情况,先删用户,再删表空间:
1 | drop user xxx cascade; |
建表空间:
1 | create tablespace XXX |
建用户:
1 | create user XXX identified by xxx |
给用户赋权:
1 | grant connect, resource, dba to xxx; |
有一次把表空间文件给删了,但是表空间还在,得想办法把表空间删掉:
1 | alter database datafile 'XXX' offline drop; |
非常简单的一句
下面是关于Oracle 11g导出空表的方法
Oracle 11g开始,exp的时候,默认情况下是不会导出无数据的空表的,这时候要分两部分解决,其一修改设置,让以后建立的新表都能导出空表,另外一个则是对已有的数据表进行设置,具体做法如下:
1、设置deferred_segment_creation 参数
查看当前设置:
1 | show parameter deferred_segment_creation |
修改参数:
1 | alter system set deferred_segment_creation=false; |
2、处理已有的空表:
先找到所有的空表:
1 | select table_name from user_tables where NUM_ROWS=0; |
把结果存到一个临时表里:
1 | select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; |
把查询结果作为语句执行一遍就O了。