Oracle数据库bug,表或试图不存在,表名中包含空格
2012-09-09 06:01:10 来源:WEB开发网核心提示: 一1.开始:通过powderDesiger导出的SQL代码中的字段都是小写的,然后直接导入了oracle.2.bug:无法修改表结构(在PL/SQL Developer中)---包括增加删除修改...3.明明该表是存在的,删除时报:表或视图不存在~! 第 1 行出现错误: ORA-00942: 表或视图不存在
一
1.开始:通过powderDesiger导出的SQL代码中的字段都是小写的,然后直接导入了oracle.
2.bug:无法修改表结构(在PL/SQL Developer中)---包括增加删除修改...
3.
明明该表是存在的,删除时报:表或视图不存在~!
第 1 行出现错误:
ORA-00942: 表或视图不存在
后来终于找出原因是因为我的表名是小写的,而是大写的则不会出现这个问题。
正常情况下....数据字典里面的数据都是大写,,,,动态视图都是小写的........在用关键字做表或其它对象的名时用""
所以表名用""引起来就行了
如何删除表时用了CASCADE CONSTRAINTS则会把与它相关的约束一起删除
而需要删除的表格可以用一个select查询出来,代码如下
--查询外键约束 select 'Alter table '||TABLE_NAME||' '||'drop constraint'||' '|| CONSTRAINT_NAME||';' from user_constraints where CONSTRAINT_TYPE ='R' and TABLE_NAME like 'TA/_%' escape '/'; --查询表名 select 'drop table '||TABLE_NAME||' '||';' from user_tables where TABLE_NAME like 'TA/_%' escape '/';
二.
1.生成表的时候,表名没有检查,直接建表,结果,表既有主键,又有外键,删除啊删除不了,双引号引起来没有效果
2.报bug,无效字符,或者表或视图不存在的bug
3.解决,改表名,然后删除
代码:ALTER TABLE "TBL_CERT IFICATE _TYPE" rename to "TABLE2";
此处,双引号引起表名,此处的双引号的作用,与之前双引号的作用不一样,之前双引号引的是小写的表名,,此处引起的是不连续的表名
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
赞助商链接