sql >> Databasteknik >  >> RDS >> Oracle

Oracle:tabell finns alltid efter släpptabell

Menar du det här fallet?

create view t_my_table as
select 'I''m here' as txt  from dual;

drop table t_my_table;

ORA-00942: table or view does not exist

Men

select * from t_my_table;

TXT     
--------
I'm here

lösning av den mest troliga orsaken

select OBJECT_TYPE from user_objects where object_name = 'T_MY_TABLE';

OBJECT_TYPE        
-------------------
VIEW

Du definierade en vy (eller annan objekttyp än TABLE) som inte kan släppas med DROP TABLE , men kan väljas .

Enkel checka in USER_OBJECTS OBJECT_TYPE . Du kan alternativt även se SYNONYM som föreslagits i annat svar.

Observera att det inte är en MATERIALIZED VIEW som om du försöker släppa en materialiserad vy med DROP TABLE ett annat felmeddelande visas:

ORA-12083: must use DROP MATERIALIZED VIEW to drop T_MY_TABLE


  1. mySQL-frågan ger syntaxfel i java, men fungerar bra i mySQL-arbetsbänken

  2. Använd JOOQ för att göra en radering och specificera flera kolumner i en not in-sats

  3. Hur genererar man en virtuell tabell för att generera en sekvens av datum i PostgreSQL?

  4. Använder r sf::st_write till icke-offentligt schema i PostgreSQL