Oracle資料庫bug,表或試圖不存在,表名中包含空格

來源:互聯網
上載者:User


1.開始:通過powderDesiger匯出的SQL代碼中的欄位都是小寫,然後直接匯入了Oracle.

2.bug:無法修改表結構(在PL/SQL Developer中)---包括增加刪除修改...

3.明明該表是存在的,刪除時報:表或視圖不存在~! 
 
第 1 行出現錯誤: 
ORA-00942: 表或視圖不存在 
 
後來終於找出原因是因為我的表名是小寫,而是大寫的則不會出現這個問題。 
正常情況下....資料字典裡面的資料都是大寫,,,,動態視圖都是小寫........在用關鍵字做表或其它對象的名時用"" 
 
所以表名用""引起來就行了 
如何刪除表時用了CASCADE CONSTRAINTS則會把與它相關的約束一起刪除 

而需要刪除的表格可以用一個select查詢出來,代碼如下

  1. --查詢外鍵約束    
  2. select 'Alter table '||TABLE_NAME||' '||'drop constraint'||' '|| CONSTRAINT_NAME||';'  
  3.   from user_constraints    
  4.   where CONSTRAINT_TYPE ='R'    
  5.   and TABLE_NAME like 'TA/_%' escape '/';  
  6. --查詢表名  
  7.  select 'drop table '||TABLE_NAME||' '||';'  
  8.   from user_tables  
  9.   where TABLE_NAME like 'TA/_%' escape '/';  

二.

1.產生表的時候,表名沒有檢查,直接建表,結果,表既有主鍵,又有外鍵,刪除啊刪除不了,雙引號引起來沒有效果

2.報bug,無效字元,或者表或視圖不存在的bug

3.解決,改表名,然後刪除

代碼:ALTER TABLE "TBL_CERT IFICATE _TYPE" rename to "TABLE2"; 

此處,雙引號引起表名,此處的雙引號的作用,與之前雙引號的作用不一樣,之前雙引號引的是小寫表名,,此處引起的是不連續的表名。

 

 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.