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"; 

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

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.