1. 程式人生 > >ORA-00971: 缺失 SET 關鍵字 ; bad SQL grammar [];

ORA-00971: 缺失 SET 關鍵字 ; bad SQL grammar [];

原因:

 

開始一直糾結是不是多了一個空格,導致異常的發生!

結果:

解決思路:

1、去掉空格還是 跑異常,網上的答案是xml配置不正確,確定比較了半小時的xml檔案《set》標籤使用方法是正確的,並且是複製貼上過來的,還不行

2、猜測是tomcat快取,去tomcat webapp檔案加下面查詢xml檔案是不是已經 是最新的,已經是最新的了確定

3、重啟tomcat,除錯還是拋異常。

4、猜測是tomcat快取未知原因導致的,重新發布再次重啟,除錯還是拋異常

5、冷靜下來,用svn去比較,沒有涉及到  符號之類的修改。判斷幾個原因

(1)控制檯的提示不一定準確,可能是其他原因導致的

(2)方法傳入的引數是不是到xml檔案中是空呢

(3)再不行的話只能是換一個tomcat因為在進xml檔案前的方法中  變數都是有值的

(4)xml變數型別不正確

(網上答案,點醒了我[該方法是自動生成的,一般情況下是不可能會型別錯誤的,

我一一比較了每個變數的型別,數值和string型別都不會拋異常],可能是java方法的變數名相似,導致傳入到xml檔案中是null)

 

處理:檢視service方法中的程式碼 果然是 Order實體類有2個,變數名 一個是order 一個是orderinfo.

總結:變數名命名  一定要  好區分。否則自己都會被自己“”“欺騙”!自信滿滿,導致查詢bug的路途更加遙遠