mysql資料庫插入資料顯示Extracted SQL state class '22' from value '22001'解決辦法
阿新 • • 發佈:2018-12-15
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 操作檢測到了無效的輸入資料。 |