sql >> データベース >  >> RDS >> Oracle

Oracle:テーブルは常にドロップテーブルの後に存在します

    この場合のことですか?

    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
    

    しかし

    select * from t_my_table;
    
    TXT     
    --------
    I'm here
    

    最も可能性の高い原因の解決策

    select OBJECT_TYPE from user_objects where object_name = 'T_MY_TABLE';
    
    OBJECT_TYPE        
    -------------------
    VIEW
    

    DROP TABLEでドロップできないビュー(またはTABLE以外の他のオブジェクトタイプ)を定義しました 、ただし、選択できます 。

    USER_OBJECTSの簡単なチェックイン OBJECT_TYPE 。または、SYNONYMも表示される場合があります。 他の回答で提案されているように。

    MATERIALIZED VIEWではないことに注意してください DROP TABLEを使用してマテリアライズドビューを削除しようとしたかのように 別のエラーメッセージが表示されます:

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


    1. PostgreSQLでのScale()関数のしくみ

    2. Oracleのutl_file.fopenパラメータ

    3. strip_tagsが機能しない

    4. MySQLのEntityFunctions.AddSecondsの代替