Minha tabela existe pela metade. Não pode soltá-lo

6

Eu tenho uma tabela que ocupa muito espaço, mesmo que não tenha linhas. Eu também deixei cair há um tempo atrás. Quando tento soltá-lo agora, diz que a tabela não existe.

Ele aparece em user_tables. Além disso, todas as suas partições e índices aparecem em user_objects.

Também não está na lixeira.

O que está acontecendo aqui?

EDITAR:

Aqui está o resultado de 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

Quando eu faço: "drop table jeremy_ALLK", eu recebo:

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:
    
por Jeremy 10.04.2012 / 22:42

2 respostas

8

Você está sendo pego com a diferenciação de maiúsculas e minúsculas do nome da tabela. No Oracle, todos esses comandos são exatamente os mesmos:

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

Ou seja, o nome da tabela é, por padrão, "levantado" para maiúsculas. Como você tem letras minúsculas no nome da sua tabela, você terá que especificar a instrução drop assim:

drop table "jeremy_ALLK"

As aspas duplas são usadas sempre que você tiver um objeto de banco de dados chamado com letras minúsculas ou espaços (!).

    
por 10.04.2012 / 23:08
2

OK. O problema parece ser que você criou a tabela com um nome de tabela com distinção entre maiúsculas e minúsculas (observe que table_name in user_tables está em maiúsculas e minúsculas). Se você fizer isso (e sugiro strongmente que não faça isso no futuro), é necessário usar o nome da tabela com distinção entre maiúsculas e minúsculas em todos os lugares. Então, sua declaração DROP TABLE precisaria ser

DROP TABLE "jeremy_ALLK";
    
por 10.04.2012 / 23:09

Tags