前段時間,維護的乙個應用在oracle測試時出錯,該應用原來已經在mysql上完成測試。通過查詢定位,原因是欄位名大小寫問題。下面與大家分離一下mysql與oracle在大小寫處理上的區別:
1、在windows下,資料庫名、表名、欄位名不區分大小寫。
2、大linux/unix下,資料庫名、表名區分大小寫,欄位名不區分大小寫。
0:區分大小寫;1、在oracle中,如果欄位名稱被雙引號("")包裹,oracle會區分大小寫;1:不區分大小寫。
2、如果欄位名稱沒有被雙引號("")包裹,則全部轉換成大寫來執行。
3、如果表結構設計時,欄位名稱使用了資料庫的保留字,sql中的欄位名稱必須用雙引號("")包裹,以避免sql語句執行出錯。
不建議用資料庫的保留字來做表名和欄位名
。以下sql語句在oracle中執行時,字段 stat_time, interval 沒有被雙引號("")包裹,不區分大小寫:
insert into smsc_flow(
stat_time
,interval
,"moduleid","smscno","icpno","mt_ok","mt_fail","mt_delay","mo_ok","mo_fail","status_ok","status_fail","success_status","count") values('20101010112',1,'mt001',1,1,1,1,1,1,1,1,1,1,1)
以下sql語句在oracle中執行時,字段 stat_time, interval 被雙引號("")包裹,全部轉換成大寫執行:
insert into smsc_flow("
stat_time
","interval
","moduleid","smscno","icpno","mt_ok","mt_fail","mt_delay","mo_ok","mo_fail","status_ok","status_fail","success_status","count") values('20101010111','20101010111',1,'mt001',1,1,1,1,1,1,1,1,1,1,1)
MySQL與Oracle的大小寫問題
文章宣告 傲風 aofengblog 163.com 前段時間,維護的乙個應用在oracle測試時出錯,該應用原來已經在mysql上完成測試。通過查詢定位,原因是欄位名大小寫問題。下面與大家分離一下mysql與oracle在大小寫處理上的區別 0 區分大小寫 1 不區分大小寫。1 在oracle中,...
Oracle與MySQL的區別
一 併發性 oracle的併發性優於mysql的併發性,oracle使用行級鎖,資源鎖定的粒度較小 mysql使用的是表級鎖 二 一致性 oracle構造資料塊來實現讀一致性,mysql只支援read commited隔離級別,乙個session讀取資料時,其他session不能更改資料,只可以在表...
Oracle與MySql的區別
mysql查詢預設是不區分大小寫的 如 select from table name where a like a select from table name where a like a 效果是一樣的。要讓mysql查詢區分大小寫,可以 select from table name where ...