当前位置:数据库 > Oracle >>

oracle创建完索引删不掉。

我在一个java事物中给一张表创建了一张唯一索引:create unique index INE_NO_INDEX on NORESINTER (NE_NO) tablespace CHN_INDEX,然后再在该事物中删除该索引,删除索引的语句:DROP INDEX INE_NO_INDEX ,执行不报错,但是程序执行完后索引没有删除完。对了我删除前是判断该索引是否存在用这个语句:select count(1) from dba_indexes where owner ='EIDNADM' and index_name ='INE_NO_INDEX' and table_name = 'NORESINTER' 如果存在则删除不存在则跳过。
追问:创建和删除都是用的一个用户,该用户有创建和删除索引的权限,创建和删除都是在一个java事物中执行的,我估计可能是判断索引存不存在的语句可能有问题,要是有问题的话应该怎么写呢?难道不是select count(1) from dba_indexes  where owner ='EIDNADM' and index_name ='INE_NO_INDEX' and table_name = 'NORESINTER'这样的?
答案:你这个判断语句怎么写的贴出来看看,另外是在存储过程当中删除的还是在java事务里面执行删除的?

一般的删除判断语句先申明一个变量,例如
declare n number;
begin
select count(1) into n from dba_indexes  where owner ='EIDNADM' and index_name ='INE_NO_INDEX' and table_name = 'NORESINTER' ;
if n=1 then
drop index EIDNADM.INE_NO_INDEX;
end if;
end;
/
有可能是你的判断语句写的有问题,或者执行者的权限有问题。
其他:貌似还要删除主KEY! 

上一个:oracle 一对多中的最大值
下一个:oracle数据库启动文件SPFILE.org损坏如何修复?

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,