Oracle

我的桌子存在一半。放不下

  • April 11, 2012

我有一張桌子佔用了相當多的空間,即使它沒有行。我前段時間也放下了。當我現在嘗試刪除它時,它說該表不存在。

它顯示在 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

當我這樣做時:“drop table 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:

你被表名的大小寫敏感所吸引。在 Oracle 中,所有這些命令都完全相同:

drop table jeremy_ALLK
drop table Jeremy_ALLK
drop table JEREMY_ALLK
drop table "JEREMY_ALLK"

也就是說,表名預設“提升”為大寫。由於您的表名中有小寫字母,因此您必須像這樣指定 drop 語句:

drop table "jeremy_ALLK"

只要您有一個以小寫字母或空格 (!) 命名的數據庫對象,就會使用雙引號。

引用自:https://serverfault.com/questions/378455