無效數字問題:Oracle-MySQL-PG大不同
有一天,一個開發找到我說。他的這個select 任意列 在查出資料的情況下 點選圖1的這個按鈕,資料逐步載入,然後就會出圖2的報錯。
圖1
圖2
我第一感覺,任意列都這樣,豈不是要走進科學了?而且神奇的是,不是一開始報錯,是資料逐步載入的時候才報錯。這一聽的確很詭異。也就是這個描述,讓我走了一段彎路。不過馬上覺得思路不對。
我就想了一下,既然任意列都報錯,那麼就不是from之前的問題,而是where之後的問題。他的where也很簡單: time有between 範圍,然後 and tpye=65。type是一個列的名字。
我們檢查了time列,資料型別是date型別。既然是date型別,資料在寫入表的時候已經已經做了校驗,就排除這個列的問題了。剩下的就是column=65。儘管看上去沒有問題,但是這是唯一的可能性了。
當然最後我是解決了這個問題,我們來複現一下這個問題,同時對比一下其他資料庫的情況。
圖3
表就是id a b 三個列,分別是id是int a和b都是字串。
當欄位是數值型的時候,=右邊就是數值。
當欄位是字元型的時候,=右邊應該是字元,如果是數值的話,就會復現我們今天這個。
結論就是這個表的這個欄位是字串,也就是 上面提到的type=65,如何解決那麼就是 type='65'就好了。
之所以會發生資料陸續載入中才會出來,是因為這一列有很多空值,空值不報錯,但是遇到有資料的行就把報錯了。
那麼其他資料庫上會如何呢?
我們來看看MySQL的
圖4
在圖4中a是int型,無論怎麼寫都不出錯。(這裡我們先不考慮索引,僅僅考慮執行會不會出錯)
圖5
在圖5中b是字元型,無論怎麼寫都不出錯。(這裡我們先不考慮索引,僅僅考慮執行會不會出錯)。
也就是說在Oracle中出錯的在MySQL中沒有問題。反過來說在MySQL中可以執行,但是到Oracle中就把報錯了。
在那麼在PG中會是如何?
圖6
圖6在PG中和之前一樣的建表。
圖7
看到圖7,發現PG的檢查和MySQL不一樣,和Oracle是一樣的。字元型的列,必須帶引號。
以上是Oracle MySQL和PG在這個場景上的差異。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2933911/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- React import React 無效問題ReactImport
- Java技巧-解決JAVA_HOME變數無效問題Java變數
- Androidselectorshape無效問題Android
- laravel scout + elasticsearch-rtf 索引無效問題LaravelElasticsearch索引
- vs下.def檔案使用無效問題
- 解決XML下無效字元的問題XML字元
- 解決mysqld_multi stop命令無效問題MySql
- Oracle資料庫無效物件問題處理Oracle資料庫物件
- 字串轉數字的問題字串
- and-design-vue設定dropdownClassName無效的問題Vue
- Oracle 處理無效物件數Oracle物件
- vue中設定height:100%無效的問題Vue
- java解決數字黑洞問題Java
- ajax跨域訪問時,set-cookie無效問題的解決跨域Cookie
- selenium 問題:OSError: [WinError 6] 控制程式碼無效Error
- 【問題處理】恢復因誤生成PFILE 導致RAC的SPFILE無效的問題
- 蘋果三星廣告套路大不同 蘋果投更多錢玩數字廣告蘋果
- 日期格式化時註解@DateTimeFormat無效的問題分析ORM
- MyBatis配合spring事務處理註解無效的問題MyBatisSpring
- CSS 計數器的妙用:數字遞增動效CSS
- 找到陣列中出現特定次數數字的問題陣列
- Android setVisibility(View.GONE)無效的問題及原因分析AndroidViewGo
- 解決select2 在modal中搜尋框無效的問題
- ActiveX 控制元件重繪無效問題,用CClientDC 而不是CPaintDC控制元件clientAI
- IDEA中Spring boot配置熱部署無效問題解決方式IdeaSpring Boot熱部署
- linux的centos版本修改時間重啟後無效的問題LinuxCentOS
- C#按字串中的數字排序問題C#字串排序
- 數字化轉型取得初效,如今智慧數字化經營可以做嗎?
- 解決ExecuteFile呼叫外部的VBS檔案時提示”無效字元”的問題字元
- 解決易優後臺友情連結開啟nofollow無效的問題
- 一個有關"ORA-01722: 無效數字"的小案例解決過程
- 無法訪問請求的頁面,因為該頁的相關配置資料無效問題的解決
- 提個js問題:為何js事件委託寫在非同步中無效?JS事件非同步
- nginx gzip on 無效Nginx
- vue專案打包,解決靜態資源無法載入和路由載入無效(404)問題Vue路由
- 這是電腦的問題還是網站有問題,登入2天都說我地址無效,傷心。網站
- butterknife在eclipse配置講解(解決ButterKnife.bind初始化無效問題)Eclipse
- [提問交流]新建分類選單,授權無效