Erro ao excluir tabela

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
xandesantos
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Ter, 12 Jun 2007 9:10 am
Localização: Salvador-BA

Prezados,

Estava tentando criar uma tabela no Oracle e tentei parar no momento em que a tabela estava sendo gerada. Resultado: foi criada uma tabela com o nome BIN$1EwrPTC3T4G2Upp1wxAarg==$0 que eu não consigo apagar de jeito nenhum. Quando tento o comando:

Selecionar tudo

DROP TABLE BIN$1EwrPTC3T4G2Upp1wxAarg==$0;
aparece a mensagem "SQL command not properly ended". Alguém saberia me informar o que devo fazer para excluir esta tabela?
ARF
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Qui, 03 Ago 2006 9:30 am
Localização: Criciúma - SC

Estas tabelas estão na recyclebin do Oracle 10g.

Quando você dropa um objeto (tabela, índice, etc), ele vai para a recyclebin, um espaço semelhante à lixeira do Windows.

Para excluir definitivamente você deve usar a cláusula PURGE, no momento do drop ou após, para esvaziar a 'lixeira'.

Selecionar tudo

drop table <nome_tabela> PURGE;
OU

Selecionar tudo

PURGE recyclebin;
Anderson Rodrigo Farias
xandesantos
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Ter, 12 Jun 2007 9:10 am
Localização: Salvador-BA

Oi Anderson,

Muito obrigado pela dica. Tentei inicialmente com a primeira sugestão (drop table <nome_tabela> PURGE;) mas apareceu a mesma mensagem:

Selecionar tudo

ORA-00933: SQL command not properly ended. 
O nome da tabela é BIN$1EwrPTC3T4G2Upp1wxAarg==$0 e ao aparecer a mensagem, fica um cursor vermelho abaixo do primeiro '=' da string. De qualquer forma, seguindo a segunda sugestão PURGE recyclebin; a tabela finalmente foi apagada.

Abraços.

Alexandre Araújo
Salvador-BA
ARF
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 41
Registrado em: Qui, 03 Ago 2006 9:30 am
Localização: Criciúma - SC

Ok.

A primeira opção não funcionou pra você porque a tabela já estava na recyclebin. Ai é só com a segunda opção mesmo.

A primeira opção é para ser usada no momento do drop da tabela original, certo?

Por exemplo, caso você queira dropar a tabela 'teste'.

Se você fizer:

Selecionar tudo

drop table teste:
Ela vai para o recyclebin com um nome semelhante a BIN$1EwrPTC3T4G2Upp1wxAarg==$0.

Para que ela seja excluída direto, sem ir para a recyclebin é que você usa o primeiro comando:

Selecionar tudo

drop table teste purge;
Entendeu?
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes