一
1.開始:通過powderDesiger匯出的SQL代碼中的欄位都是小寫,然後直接匯入了Oracle.
2.bug:無法修改表結構(在PL/SQL Developer中)---包括增加刪除修改...
3.明明該表是存在的,刪除時報:表或視圖不存在~!
第 1 行出現錯誤:
ORA-00942: 表或視圖不存在
後來終於找出原因是因為我的表名是小寫,而是大寫的則不會出現這個問題。
正常情況下....資料字典裡面的資料都是大寫,,,,動態視圖都是小寫........在用關鍵字做表或其它對象的名時用""
所以表名用""引起來就行了
如何刪除表時用了CASCADE CONSTRAINTS則會把與它相關的約束一起刪除
而需要刪除的表格可以用一個select查詢出來,代碼如下
- --查詢外鍵約束
- select 'Alter table '||TABLE_NAME||' '||'drop constraint'||' '|| CONSTRAINT_NAME||';'
- from user_constraints
- where CONSTRAINT_TYPE ='R'
- and TABLE_NAME like 'TA/_%' escape '/';
- --查詢表名
- select 'drop table '||TABLE_NAME||' '||';'
- from user_tables
- where TABLE_NAME like 'TA/_%' escape '/';
二.
1.產生表的時候,表名沒有檢查,直接建表,結果,表既有主鍵,又有外鍵,刪除啊刪除不了,雙引號引起來沒有效果
2.報bug,無效字元,或者表或視圖不存在的bug
3.解決,改表名,然後刪除
代碼:ALTER TABLE "TBL_CERT IFICATE _TYPE" rename to "TABLE2";
此處,雙引號引起表名,此處的雙引號的作用,與之前雙引號的作用不一樣,之前雙引號引的是小寫表名,,此處引起的是不連續的表名。