行がないにもかかわらず、かなりのスペースを占めるテーブルがあります。私も少し前に落としました。今ドロップしようとすると、テーブルが存在しないと表示されます。
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
「droptablejeremy_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"
小文字またはスペース(!)で名前が付けられたデータベースオブジェクトがある場合は常に、二重引用符が使用されます。
OK。問題は、大文字と小文字を区別するテーブル名でテーブルを作成したことであるようです(table_name
in user_tables
は大文字と小文字が混在しています)。これを行う場合(そして将来的には行わないことを強くお勧めします)、すべての場所で大文字と小文字を区別するテーブル名を使用する必要があります。だからあなたのDROP TABLE
ステートメントは
DROP TABLE "jeremy_ALLK";