一、問題由來
現在進行項目改造,數據庫需要遷移,由原來的使用GBase數據庫改為使用Oracle數據庫,今天測試人員在測試時后台報了一個異常。
把SQL語句單獨復制出來進行查詢,還是報錯,仔細分析原因才知道是表中的字段使用了Oracle中的關鍵字size。
二、問題分析
項目中使用的Oracle版本如下:
一般來說建表的時候是不會使用關鍵字的,可是之前的開發人員或者是數據庫運維人員可能為了偷懶吧,在那張表中使用四個Oracle中的關鍵字,
所以導致查詢的時候出現異常。
三、解決方案
找到問題的原因后,問題就好解決了。詢問了一下開發的同事有沒有好的解決辦法,有個同事說這種情況可以在查詢的列中使用雙引號
將需要查詢的字段包起來試一試。我馬上進行測試,簡單查詢時確實可行,可是使用分組查詢查詢后立馬報錯。下面是查詢語句:
所以使用雙引號的方案被否定,因為不管使用或者是不使用雙引號將關鍵字包起來,group by 后面都不能跟Oracle的關鍵字。除了這個問題外在
新增數據的時候,也是出現各種問題,按照常規的方式不能正常插入,只能按照如下的方式進行插入,在新增時表后面不跟列名:
衡量各種利弊后,發現表中字段使用關鍵字這種方式非常不可取,還是修改列名這個方法最靠譜。Oracle中關鍵字可以參考