1. 程式人生 > >mysql資料庫插入資料顯示Extracted SQL state class '22' from value '22001'解決辦法

mysql資料庫插入資料顯示Extracted SQL state class '22' from value '22001'解決辦法

Extracted SQL state class ‘22’ from value ‘22001’

問題描述

最近在完成一個專案時,需要實現在網頁從excel匯入資料,然後儲存到資料庫中.在測試階段時發現執行沒有任何問題,但是實際部署過程中發現,使用者上傳excel匯入資料失敗,日誌如下:

Extracted SQL state class '22' from value '22001'

解決辦法

搞清楚此異常的原因,需要查詢sql的執行狀態表:
這條異常的意思是說,要儲存的資料超過了資料庫中對該欄位定義的最大長度,檢查資料表的定義,修改不合適欄位定義,問題解決

類程式碼22:資料異常

SQLSTATE 值 含義
22001 字元資料,發生右截斷;例如,更新或插入值對於列來說太長(字串),或者日期時間值由於太小而不能賦給主機變數。
22002 檢測到空值或缺少指示符引數;例如,不能將空值賦給主機變數,因為沒有指定指示符變數。
22003 數字值超出範圍。
22004 不能從定義為 PARAMETER STYLE GENERAL 的過程或者從用非空自變數呼叫的型別保留方法中返回空值。
22007 檢測到無效的日期時間格式;即指定了無效的字串表示法或值。
22008 發生日期時間欄位溢位;例如,對日期或時間戳記算術運算的結果不在有效日期範圍之內。
2200G 大多數特定型別都不匹配。
22011 發生子字串錯誤;例如,SUBSTR 的自變數超出範圍。
22012 用零作除數是無效的。
22018 對於 CAST、DECIMAL、FLOAT、或 INTEGER 標量函式,字元值是無效的。
22019 LIKE 謂詞有無效轉義字元。
22021 某字元不在編碼字符集中。
22024 以 NUL 結束的輸入主機變數或引數不包含 NUL。
22025 LIKE 謂詞字串模式包含無效的轉義字元。
2202D 配合變異方法使用了空例項。
2202H 在 TABLESAMPLE 子句中指定的樣本大小無效。
22501 變長字串的長度控制欄位為負值或大於最大值。
22504 混合資料值是無效的。
22506 對日期時間專用暫存器的引用無效,因為 TOD 時鐘發生故障或作業系統時區引數超出範圍。
22522 CCSID 值根本無效,對資料型別或子型別無效,或對編碼方案無效。
22526 鍵變換函式沒有生成任何行或生成了重複的行。
22527 對多行 INSERT 操作檢測到了無效的輸入資料。