扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、你需要明白oracle数据结构
从事重庆服务器托管,服务器租用,云主机,虚拟主机,域名注册,CDN,网络代维等服务。
首先数据以表table/索引index/视图view等方式存在,而表/索引/视图存储在表空间,表空间对应硬盘上的文件
2、数据库包含数据字典或默认的一些用户或你创建的用户,这些用户访问这些表或表空间
3、而这都需要存在一个实例instance
4、所以你如果删除数据,需要删除表,然后表空间(或者直接删除表空间连带里面的表)
DROP TABLESPACE DATA_TS1 INCLUDING CONTENTS AND DATAFILES;
5、查询都有哪些表空间
col file_name format a50
select TABLESPACE_NAME,FILE_NAME from dba_data_files order by TABLESPACE_NAME;
查询表空间包含哪些表
col SEGMENT_NAME format a30
select distinct SEGMENT_NAME,TABLESPACE_NAME from dba_segments where TABLESPACE_NAME='DATA_TS1' order by SEGMENT_NAME;
6、生成所有表的drop语句
select 'drop table '||tname||' purge;' from tab order by tname;
7、用dbca删除instance后,数据库就像新安装时候一样干干净净
dbca -silent -deleteDatabase -sourceDB mydb -sysDBAUserName sys -sysDBAPassword db123456
或者用图形界面删除。
如果只是单表的简单查询视图,是可以直接删除的。
但是如果是复杂查询,有分析函数的,或者是多表的视图,则需要创建instead of 触发器才能完成这个功能。
用建视图的用户登陆,执行下面代码,可以删除所有视图,但是慎重哈。
前提是该用户有执行代码权限。
begin
for cur in (select view_name from user_views) loop
execute immediately 'drop view '|| cur.view_name ||';';
end loop;
end;
/
在 dba_objects 找到用户所属的表和视图,在写过存储过程用,动态语句循环删除,这样应该可以试试:
SELECT * FROM dba_objects where owner=‘TEST’ AND object_type in ('TABLE','VIEW')
1、首先表空间分三种。永久表空间:是存储数据库中需要永久化存储的对象,如表、视图、存储过程、索引等。临时表空间:存储数据库中的执行过程,临时表空间是通用的。undo表空间:保存数据修改前的副本。
2、然后要查看用户默认表空间和临时表空间select default_tablespace,temporary_tablespace from dba_users where username='用户名'。注意的是用户名要大写。
3、接着就是创建永久表空间语法create tablespace 表空间名字 datafile '表空间位置' size 50m;create tablespace 是表空间名字
datafile '/data/oracle/oradata/是表空间文件名称' size 500M autoextend on next 150m。
4、然后为了指定默认表空间,在创建用户的时候需要用户指定默认的表空间。才可以使用创建的用户可以直接登录表空间,注意的是只要有足够的权限在表空间内可以进行其它操作。
5、再来就是修改表空间的大小,当发现某个表空间存储空间不足时,就可以为表空间添加新的数据文件,来扩展表空间大小,要进行先增加大小后再查看表空间大小发现已经更改。
6、最后就可以删除表空间,要是在删除表空间的同时将表空间中的数据文件一同删除时,注意的是需要加上[INCLUDING CONTENTS] ,如下图所示。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流