創建表時 ORA-00955: 名稱已由現有對象使用


如下,在執行創建表語句時報錯如下:

執行下面sql查詢

select a.OBJECT_type,a.* from all_objects a where upper(a.OBJECT_NAME) ='USER_SF_INFO';

發現有一個視圖和該表重名了,解決方法是修改名稱,或刪掉重復的對象

 

附:如果查詢對象時沒有找到,則在dba賬戶下執行下面的語句刷新一下共享池(未進行到此步,無法驗證准確性)

alter system flush shared_pool;

 

共享池:

oracle會將用戶提交來的SQL語句都緩存在內存中。每次處理新的一條SQL語句時都會先在內存中查看是否有相同的SQL語句,如果相同則可以減少最重要的解析工作(也就是生成執行計划),從而節省了大量的資源;反之如果沒有找到相同的SQL語句,則必須重新從頭到尾進行完整的解析過程,這部分存放SQL語句的內存就叫做共享池( shared pool)。當然shared pool里不僅僅是SQL語句,還包括管理shared pool的內存結構以及執行計划、控制信息等等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM