У меня есть таблица, которая занимает довольно много места, хотя в ней нет строк. Я тоже недавно уронил. Когда я пытаюсь отбросить его сейчас, он говорит, что таблицы не существует.
Он отображается в 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"
Двойные кавычки используются всякий раз, когда у вас есть объект базы данных, названный строчными буквами или пробелами (!).
ХОРОШО. Проблема заключается в том, что вы создали таблицу с чувствительным к регистру именем таблицы (обратите внимание, что table_name
в user_tables
находится в смешанном случае). Если вы это сделаете (и я настоятельно рекомендую не делать этого в будущем), вам нужно везде использовать имя таблицы с учетом регистра. Так что ваши DROP TABLE
заявление должно быть
DROP TABLE "jeremy_ALLK";