
正文
oracle修复表索引,oracle修改表索引sql语句
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
ORACLE用IMP恢复时,出现违反唯一索引,访问拒绝
光说违反唯一约束,按照理论来说,应该不会有这样的错误。因为在原数据库既然能存储,就应该是没问题。
不过imp报错,无非就是几个原因 (1)权限(导入用户的权限,用户表空间权限等等,可能性较多。)(2)版本问题,比如高版本导入低版本,或者低到高有时都会出现问题,并不是一定出现,而是可能,至少我遇到过。
不是提示很清楚了 导入的用户权限必须与导出的用户一致,还有你导入的库里面必须没有要导入的数据,如果有的话就会提示违反约束条件。
第一种:首先,备份数据库(X:\oracle\oradata)下的数据文件,重新命名即可(否则装数据库的时候会提示sid已存在)。重新安装数据库,当然数据库的名字就是你要恢复的名字。安装完成后,打开控制面板,停止oracle的服务。
相关问答
Q1: 如何让Oracle表的索引暂时失效?然后恢复有效
1、你是想让某一个索引不起作用,还是全部索引不起作用,如果是全部索引,也就是说你要走全表扫描,那么用hint就行,如果让某一个索引不起作用,用另外一个索引,那么也可以用hint指定。
2、隐式转换 隐式转换会导致索引失效,特别是在查询时将字段作为number类型以where条件传给Oracle时。这种错误的行为在开发中是常见的,也是经常会犯的错误。
3、索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。
4、补充:索引这个东西的确是由于函数的引用而导致失效,比如:表A(id char(10),name char(10)),如果在id上建有索引的话:select * from a where id =1000这样就能引用到索引。
Q2: oracle分析表,解决索引失效
1、这个语句只是分析表的统计信息,不会危机到oracle的数据,但是执行的时候比较耗费资源 另这个语句无法解决索引失效的问题。
2、容易引起oracle索引失效的原因很多:在索引列上使用函数。如SUBSTR,DECODE,INSTR等,对索引列进行运算.需要建立函数索引就可以解决了。
3、隐式转换 隐式转换会导致索引失效,特别是在查询时将字段作为number类型以where条件传给Oracle时。这种错误的行为在开发中是常见的,也是经常会犯的错误。
4、alter index idx_t rebuild;直接重建索引就好了。
5、select * from a where to_number(id) = 1000; 正是由于这个to_number函数就会导致原来建在 id上的索引失效。
6、个表关联,关联字段都建了索引,这样关联没问题的。关键是你缺少查询条件,你不可能全表扫描把,只要查询条件得当(索引得当),sql效率还是行的。希望我的回答对你有帮助。
oracle修复表索引的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle修改表索引sql语句、oracle修复表索引的信息别忘了在本站进行查找喔。







