一、問題由來(lái)
現(xiàn)在進(jìn)行項(xiàng)目改造,數(shù)據(jù)庫(kù)需要遷移,由原來(lái)的使用GBase數(shù)據(jù)庫(kù)改為使用Oracle數(shù)據(jù)庫(kù),今天測(cè)試人員在測(cè)試時(shí)后臺(tái)報(bào)了一個(gè)異常。

把SQL語(yǔ)句單獨(dú)復(fù)制出來(lái)進(jìn)行查詢,還是報(bào)錯(cuò),仔細(xì)分析原因才知道是表中的字段使用了Oracle中的關(guān)鍵字size。
二、問題分析
項(xiàng)目中使用的Oracle版本如下:

一般來(lái)說建表的時(shí)候是不會(huì)使用關(guān)鍵字的,可是之前的開發(fā)人員或者是數(shù)據(jù)庫(kù)運(yùn)維人員可能為了偷懶吧,在那張表中使用四個(gè)Oracle中的關(guān)鍵字,
所以導(dǎo)致查詢的時(shí)候出現(xiàn)異常。
三、解決方案
找到問題的原因后,問題就好解決了。詢問了一下開發(fā)的同事有沒有好的解決辦法,有個(gè)同事說這種情況可是在查詢的列中使用雙引號(hào)
將需要查詢的字段包起來(lái)試一下。我立馬去嘗試,簡(jiǎn)單查詢時(shí)確實(shí)可行,可是使用分組查詢查詢后立馬報(bào)錯(cuò)。下面是查詢語(yǔ)句:

所以使用雙引號(hào)的方案被否定了,因?yàn)椴还苁褂没蛘呤遣皇褂秒p引號(hào)將關(guān)鍵字包起來(lái),group by 后面都不能跟Oracle的關(guān)鍵字。除了這個(gè)問題外,
在新增數(shù)據(jù)的時(shí)候,也是出現(xiàn)各種問題,按照常規(guī)的方式不能正常插入,只能按照如下的方式進(jìn)行插入,在新增時(shí)表后面不跟列名:

衡量利弊后,發(fā)現(xiàn)表中字段使用關(guān)鍵字這種方式非常不可取,還是改列名這個(gè)方法最靠譜。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 使用SQL語(yǔ)句查詢MySQL,SQLServer,Oracle所有數(shù)據(jù)庫(kù)名和表名,字段名
- Oracle數(shù)據(jù)庫(kù)表中字段順序的修改方法
- Oracle表字段的增刪改、表的重命名及主鍵的增刪改
- Oracle刪除表、字段之前判斷表、字段是否存在
- oracle獲取當(dāng)前用戶表、字段等詳細(xì)信息SQL
- oracle刪除表字段和oracle表增加字段
- 在oracle 數(shù)據(jù)庫(kù)查詢的select 查詢字段中關(guān)聯(lián)其他表的方法