删除表空间的时候遇到的问题:ORA-02429: 无法删除用于强制唯一/主键的索引

今天打算删除orcale数据库中无用的表空间,发现报错,查资料删除,写个过程留着备用。

1、drop tablespace dldata
INCLUDING CONTENTS CASCADE CONSTRAINTS;

报错如下:
ORA-00604: 递归 SQL 级别 1
出现错误
ORA-02429: 无法删除用于强制唯一/主键的索引

2、select
segment_name,partition_name,tablespace_name from dba_extents where
tablespace_name=upper(‘DLDATA‘);

显示有两个表:
SEGMENT_NAME                  
PARTITION_NAME                
TABLESPACE_NAME
-------------------- -------------------------
------------------------------
AAAA                                                         
DLDATA
AAAA                                                         
DLDATA

以下是生成删除主键约束的脚本
3、select ‘alter table
‘||owner||‘.‘||table_name||‘ drop constraint ‘||constraint_name||‘ ;‘ from
dba_constraints where constraint_type in (‘U‘, ‘P‘) and (index_owner,
index_name) in (select owner, segment_name from dba_segments where
tablespace_name =
‘DLDATA‘);

显示如下:
‘ALTERTABLE‘||OWNER||‘.‘||TABL
--------------------------------------------------------------------------------
alter
table KJMN.EQINTERFACE drop constraint AAAA ;
alter table USERACC.EQINTERFACE
drop constraint AAAA ;

4、alter table KJMN.EQINTERFACE drop constraint
AAAA ;

结果如下:
Table altered

5、alter table USERACC.EQINTERFACE
drop constraint AAAA ;

结果如下:
Table altered

6、drop tablespace
DLDATA INCLUDING CONTENTS;

结果如下:
Tablespace dropped

摘自:http://blog.sina.com.cn/s/blog_497f02be0102v1mi.html

时间: 2024-12-22 07:08:17

删除表空间的时候遇到的问题:ORA-02429: 无法删除用于强制唯一/主键的索引的相关文章

执行sql失败之后,再次执行的时候提示:ora-02429:无法删除用于强制唯一/主键的索引

SQL 1:select segment_name,partition_name,tablespace_name from --显示出表的主键的表空间是:SYSTEM --以下是生成删除主键约束的脚本 select 'alter table '||owner||'.'||table_name||' drop constraint '||constraint_name||' ;'from dba_constraintswhere constraint_type in ('U', 'P') and

oracle 11g 手动删除表空间文件导致数据库报错处理方法

简单说下原因:当时图方便没进数据库,直接在datafile目录下删除了表空间对应的数据文件 导致后来数据库报错,并且不能删除表空间 错误如下:ORA-01116:error in opening database ****ORA-01110:data file 54:'/home3/datafile/arrange/NewArrange.dbf'ORA-27041:unable to open fileLinux Error:2: No Such file or directoryAdditio

Oracle菜鸟之如何创建和删除表空间

1.创建临时表空间 创建表空间时,dbf文件一般存放在datafile文件的存放目录下(一般是在实例名命名的文件夹下面) 可以通过 select * from v$datafile;查看所有数据文件的存放位置 create temporary tablespace 表空间名 tempfile '/data/oradata/CHUANSHU/datafile/tmp_文件名.dbf' size 50M autoextend on next 1M maxsize 1024M extent manag

oracle中删除表空间提示ORA-00604和ORA-38301

今天需要在本机上腾出空间,发现oracle中有一个dbf文件占了约30G,这个数据文件对应的用户平时很少使用的,于是就想对它进行处理-删除表空间操作. 本机的数据库是32位的10.2.0.1.0,表空间为TEST_TB存在若干个表数据.刚开始时用dba角色的system用户,直接执行 drop tablespace test_tb including contents and datafiles; 提示: ORA-00604:递归SQL级别1出现错误 ORA-38301:无法对回收站中的对象执行

20_Oracle_Admin_移动表空间的数据文件以及删除表空间

一.使用ALTER TABLESPACE来移动数据文件 移动数据文件在调整表空间大小时有可能会用到,使用的是ALTERTABLESPACE命令.但是要注意的是,在进行此项操作之前,首先应将tablespace 设为offline,第二,需要确定目标数据文件是存在的. ======查询当前表空间信息======= SQL> select file_name, tablespace_name,bytes from dba_data_files; FILE_NAME                  

oracle下正确删除表空间的方法

Oracle因为本身的多重验证机制所有在删除表空间时不像MySQL中删除database一样,可以通过外部的删除直接删除掉database文件夹就可以删除掉database,当然这两者是2种不同的东西,在此仅用于举例说明.在Oracle中表空间相当于系统中的硬盘,Oracle可以通过修改配置表空间来对Oracle下的数据进行存储,所以在Oracle下表空间是非常重要的,尤其是在表空间文件处理不当都会造成Oracle的不稳定,在此就说一说如何正确的删除Oracle的表空间. 删除表空间时,需要确定

Tbs_P1:创建、更改和删除表空间

SQL>conn system/oracle SQL>CREATE TABLESPACE  tbs_peenboo DATAFILE'/oradata/tbs_peenboo_01.dbf' size 10m EXTENTMANAGEMENT LOCAL AUTOALLOCATE SEGMENTSPACE MANAGEMENT AUTO;   SQL>create table  t_newtab(c1 date)tablespace tbs_peenboo; SQL>select 

oraclle数据库建表空间和建用户,删除表空间

oracle创建表空间 注意点: 1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行 2.确保路径存在,比如[D:\oracle\oradata\Oracle9i\]也就是你要保存文件的路径存在 /*分为四步 */ /*第1步:创建临时表空间  */ create temporary tablespace user_temp   tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'  size 50m autoex

Oracle菜鸟之怎样创建和删除表空间

1.创建暂时表空间 创建表空间时,dbf文件一般存放在datafile文件的存放文件夹下(通常是在实例名命名的文件夹以下) 能够通过 select * from v$datafile;查看全部数据文件的存放位置 create temporary tablespace 表空间名 tempfile '/data/oradata/CHUANSHU/datafile/tmp_文件名称.dbf' size 50M autoextend on next 1M maxsize 1024M extent man