oracle中如何删除所有表
如何将oracle中将自建用户kss下的所有表删除,我要重新导入.dmp文件。保持表空间不变.sql语句怎么删除,不用sql又怎么删除,谢谢,刚开始用oracle...
如何将oracle中将自建用户kss下的所有表删除,我要重新导入.dmp文件。保持表空间不变. sql 语句怎么删除,不用sql又怎么删除,谢谢,刚开始用oracle
展开
7个回答
2018-08-03 · 知道合伙人软件行家
关注
展开全部
ORACLE删除当前用户下所有的表的方法
1、如果有删除用户的权限,则可以:
drop user user_name cascade;
加了cascade就可以把用户连带的数据全部删掉。
删除后再创建该用户。
--创建管理员用户
create user 用户名 identified by 密码 default tablespace space_data(表空间名称) temporary tablespace space_temp(临时表空间名称);
--授权
grant connect,dba to 用户名;
--修改限额
ALTER USER "用户名" QUOTA UNLIMITED ON SPACE_DATA(表空间名称);
--查看所有用户对象
select uo.object_name,uo.object_type from user_objects uo where uo.object_type<>'LOB' order by uo.object_type desc
2、如果没有删除用户的权限,则可以执行:
select 'drop table '||table_name||';'
from cat
where table_type='TABLE'
将会输出一批删除表的sql语句,这些SQL语句执行一下就可以了。(需要有drop table的权限)
1、如果有删除用户的权限,则可以:
drop user user_name cascade;
加了cascade就可以把用户连带的数据全部删掉。
删除后再创建该用户。
--创建管理员用户
create user 用户名 identified by 密码 default tablespace space_data(表空间名称) temporary tablespace space_temp(临时表空间名称);
--授权
grant connect,dba to 用户名;
--修改限额
ALTER USER "用户名" QUOTA UNLIMITED ON SPACE_DATA(表空间名称);
--查看所有用户对象
select uo.object_name,uo.object_type from user_objects uo where uo.object_type<>'LOB' order by uo.object_type desc
2、如果没有删除用户的权限,则可以执行:
select 'drop table '||table_name||';'
from cat
where table_type='TABLE'
将会输出一批删除表的sql语句,这些SQL语句执行一下就可以了。(需要有drop table的权限)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先说不用sql,下载一个工具,toad 8或9都行,就是蛤蟆头的那个工具,可以用它来访问oracle,找到用户,在找到表删除就行了。
再说用sql的,先登录的kss用户下,
sql>select * from tab; --找到用户下的所有表
sql>drop table ***; --用drop 命令一个个删除即可。
要用dmp导入,一定要删干净,否则导入时会报错
要保持原表空间不变,只要用原用户imp即可,当然导出文件也要是原表空间的。
再说用sql的,先登录的kss用户下,
sql>select * from tab; --找到用户下的所有表
sql>drop table ***; --用drop 命令一个个删除即可。
要用dmp导入,一定要删干净,否则导入时会报错
要保持原表空间不变,只要用原用户imp即可,当然导出文件也要是原表空间的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
删除scott下表:
scott@ORCL>select 'drop table '||table_name||' cascade'||';' from user_tables;
'DROPTABLE'||TABLE_NAME||'CASCADE'||';'
--------------------------------------------------
drop table DEPT cascade;
drop table T cascade;
drop table PLSQL_PROFILER_RUNS cascade;
drop table PLSQL_PROFILER_UNITS cascade;
drop table PLSQL_PROFILER_DATA cascade;
drop table DISK_CONN cascade;
drop table EMP cascade;
drop table TEST1 cascade;
drop table SYS_TEMP_FBT cascade;
drop table TEST cascade;
已选择10行。
剩下的就是复制粘帖语句了,但是如果有参照完整性的表可以特殊处理。
scott@ORCL>select 'drop table '||table_name||' cascade'||';' from user_tables;
'DROPTABLE'||TABLE_NAME||'CASCADE'||';'
--------------------------------------------------
drop table DEPT cascade;
drop table T cascade;
drop table PLSQL_PROFILER_RUNS cascade;
drop table PLSQL_PROFILER_UNITS cascade;
drop table PLSQL_PROFILER_DATA cascade;
drop table DISK_CONN cascade;
drop table EMP cascade;
drop table TEST1 cascade;
drop table SYS_TEMP_FBT cascade;
drop table TEST cascade;
已选择10行。
剩下的就是复制粘帖语句了,但是如果有参照完整性的表可以特殊处理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以select 'drop table '||table_name||' purge;' from user_tables;
执行出结果,然后复制结构,批量的执行就可以了。
如果是你imp导入的话,现存的表结构如果一样的话,可以用ignore参数的,指定忽略已经存在的对象。
执行出结果,然后复制结构,批量的执行就可以了。
如果是你imp导入的话,现存的表结构如果一样的话,可以用ignore参数的,指定忽略已经存在的对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询