2010-06-24 97 views
0

我們剛剛從oracle 9i升級到10g,並且我已經與9i客戶端一起使用了數據庫查詢,但不是10g。查詢中沒有任何變化。我收到以下錯誤:Java JDBC Oracle 9i升級到10g問題

java.sql.SQLException: ORA-01036: illegal variable name/number 

不確定發生了什麼事。爲什麼不能再運行了。這只是一個選擇語句,它加入了大約3或4個表格。我確保我使用setInt傳遞變量(這是我使用的一個數字)。雖然區分正在加入的表格,但我發現唯一不同的是,在一張桌子上,我加入的一列設置爲一個表格上的數字和另一個表格上的數字(12)。這是否有所作爲?查詢仍然運行在蟾蜍和SQL導航...

+1

NUMBER與NUMBER(12)不是問題; NUMBER(12)只是定義了小數點後的精度。無法記住NUMBER默認的精度是多少。 – 2010-06-24 19:46:28

+0

是的,我有點揣測,我只是把它扔到那裏,因爲這真的不是我的區域,沒有人在這裏有一個線索,甚至從哪裏開始。謝謝。 – user16208 2010-06-24 19:49:15

+1

看到該功能可能會有所幫助。 – 2010-06-24 20:11:48

回答

0

的問題是對準備的語句下面的方法調用:

ps.setEscapeProcessing(false); 

刪除了,現在它工作正常。不要認爲這與Oracle 10g驅動程序兼容。感謝大家的幫助。

0

2想法涌現在腦海裏:

  1. 確保您使用的JDBC驅動程序的正確版本。既然你說過查詢在TOAD等工作,這很可能是你的問題。
  2. 確保您不使用任何ORACLE鍵詞在您的查詢的列別名等

此外,從經驗,如果你的數據庫是大/忙你已經有了一個公平的路要走你的10g環境是穩定的。我的建議:

  1. 學習儘可能多地瞭解統計
  2. 閱讀生存手冊(有在網絡上的很多)
  3. 注意內置的工作是重新計算的狀態。我們在上線12天后受到重擊,因爲狀態變化破壞了關鍵查詢性能。我們的測試不允許進行12天的穩定性測試。
  4. 知道綁定變量,偷看,如果你是不是已經