一、問題由來
現(xiàn)在進(jìn)行項目改造,數(shù)據(jù)庫需要遷移,由原來的使用GBase數(shù)據(jù)庫改為使用Oracle數(shù)據(jù)庫,今天測試人員在測試時后臺報了一個異常。
把SQL語句單獨復(fù)制出來進(jìn)行查詢,還是報錯,仔細(xì)分析原因才知道是表中的字段使用了Oracle中的關(guān)鍵字size。
二、問題分析
項目中使用的Oracle版本如下:
一般來說建表的時候是不會使用關(guān)鍵字的,可是之前的開發(fā)人員或者是數(shù)據(jù)庫運維人員可能為了偷懶吧,在那張表中使用四個Oracle中的關(guān)鍵字,
所以導(dǎo)致查詢的時候出現(xiàn)異常。
三、解決方案
找到問題的原因后,問題就好解決了。詢問了一下開發(fā)的同事有沒有好的解決辦法,有個同事說這種情況可是在查詢的列中使用雙引號
將需要查詢的字段包起來試一下。我立馬去嘗試,簡單查詢時確實可行,可是使用分組查詢查詢后立馬報錯。下面是查詢語句:
所以使用雙引號的方案被否定了,因為不管使用或者是不使用雙引號將關(guān)鍵字包起來,group by 后面都不能跟Oracle的關(guān)鍵字。除了這個問題外,
在新增數(shù)據(jù)的時候,也是出現(xiàn)各種問題,按照常規(guī)的方式不能正常插入,只能按照如下的方式進(jìn)行插入,在新增時表后面不跟列名:
衡量利弊后,發(fā)現(xiàn)表中字段使用關(guān)鍵字這種方式非常不可取,還是改列名這個方法最靠譜。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 使用SQL語句查詢MySQL,SQLServer,Oracle所有數(shù)據(jù)庫名和表名,字段名
- Oracle數(shù)據(jù)庫表中字段順序的修改方法
- Oracle表字段的增刪改、表的重命名及主鍵的增刪改
- Oracle刪除表、字段之前判斷表、字段是否存在
- oracle獲取當(dāng)前用戶表、字段等詳細(xì)信息SQL
- oracle刪除表字段和oracle表增加字段
- 在oracle 數(shù)據(jù)庫查詢的select 查詢字段中關(guān)聯(lián)其他表的方法