我有一张桌子,即使它没有行,也占用了相当多的空间。我前段时间也掉了。当我现在尝试删除它时,它说该表不存在。
它显示在 user_tables 中。此外,它的所有分区和索引都显示在 user_objects 中。
它也不在回收站中。
这里发生了什么?
编辑:
这是 user_tables 的结果:
TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAME STATUS PCT_FREE PCT_USED INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS LOGGING BACKED_UP NUM_ROWS BLOCKS EMPTY_BLOCKS AVG_SPACE CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE INSTANCES CACHE TABLE_LOCK SAMPLE_SIZE LAST_ANALYZED PARTITIONED IOT_TYPE TEMPORARY SECONDARY NESTED BUFFER_POOL ROW_MOVEMENT GLOBAL_STATS USER_STATS DURATION SKIP_CORRUPT MONITORING CLUSTER_OWNER DEPENDENCIES COMPRESSION COMPRESS_FOR DROPPED READ_ONLY
jeremy_ALLK VALID N 8 1 N ENABLED YES N N NO ENABLED NO NO DISABLED YES DISABLED NO NO
Run Code Online (Sandbox Code Playgroud)
当我这样做时:“删除表 jeremy_ALLK”,我得到:
Error starting at line 7 in command:
drop table jeremy_ALLK
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
Run Code Online (Sandbox Code Playgroud)
小智 9
您会被表名区分大小写所困扰。在 Oracle 中,所有这些命令都完全相同:
drop table jeremy_ALLK
drop table Jeremy_ALLK
drop table JEREMY_ALLK
drop table "JEREMY_ALLK"
Run Code Online (Sandbox Code Playgroud)
也就是说,表名默认“提升”为大写。由于您的表名中有小写字母,因此您必须像这样指定 drop 语句:
drop table "jeremy_ALLK"
Run Code Online (Sandbox Code Playgroud)
每当您有一个以小写字母或空格 (!) 命名的数据库对象时,就会使用双引号。