ORA-00942: table or view does not exist 錯誤,生產環境的多原因分析以及查找問題思路

ORA-00942: table or view does not exist 錯誤

table or view does not exist問題,已經困擾兩天之久了,一直沒有思路,雖然代碼多次調整,但是還是會出現這樣的問題,現有解決思路提供一下,方便大家參考學習。

根據網上搜集的各種問題和答案,我來總結一下。

1、在開發初期的時候,由於powerdesigner進行數據庫的設計工作,在轉換數據庫表的時候,出現的問題

這是由於oracle數據庫是對大小寫敏感的數據庫,在進行數據操作的時候,對於表名,加“”,和不加 “” ,是有嚴格區分的,

特別是powerdesigner轉換生成的庫表,如果沒有進行轉換的專門設置,就會導致在生成庫表的時候,表名是帶有雙引號的,

如下圖的powerdesigner設置:

這個問題,在開發的初期,還是比較容易遇到的,所以可以在項目初期,對於這樣的問題,多加註意。

2、就是在開發中,編寫SQL不規範,以及可能存在的SQL錯漏,導致的問題

這個問題,就需要開發人員對於編寫SQL,進行細緻的檢查,以及SQL編寫的強化學習工作,特別是對於初級開發人員。

特別是在程序開發中,執行的SQL,不能夠直接進行SQL的操作工作,就需要我們使用Debug模式,取出執行的SQL,在進行分析工作,放在PL/SQL中,進行執行看看是否報錯,如果報錯,就需要我們逐字逐句的進行檢驗。

3、在開發後期會出來的表和視圖不存在的問題,就是程序中存在多數據源的切換工作時。

在開發的後期時候,程序基本上成熟,但是在細節處理中,我們可能還是處理的不夠細緻。

特別是在多數據源進行切換操作的時候,在複雜的運行環境中,我們無法預測到底是什麼原因造成的報錯問題。

在排除了基本型問題的時候,就要考慮我們的薄弱環節,就是多數據源的切換操作的時候,是否能夠正常切換,

切換操作是否像我們要求的那樣,進行了正常的切換工作,然後找到對應的問題進行解決。

4、在運維時期會出現的表和視圖不存在的問題分析

在運維時候,如果還是出現表和視圖不存在的問題的時候,我們就需要考慮,在數據源的獲取上是否正常

連接池是否能夠正常支持業務,是否存在不釋放資源的代碼導致數據源被全部佔用導致的錯誤。

此時,如果我們使用的是C3P0連接池,可以添加兩個節點,進行連接不釋放資源的問題跟蹤

<property name="unreturnedConnectionTimeout"><value>100</value></property>
  <property name="debugUnreturnedConnectionStackTraces"><value>true</value></property>

這個時候,需要我們細緻分析的工作,保證工作的正常開展。

以上就是個人遇見這個問題的一些思考,不一定適應每一個人,但是可以提供一種思考方式,這樣方便你我他。

是一種自我提升方式,也是一種不斷進步的方式,還是交流的好辦法。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章