異常信息
[Err] [Dtf] 1426 - Too-big precision 7 specified for 'CREATE_TIME'. Maximum is 6.
異常背景
用Navicat的數據傳輸功能進行oracle的數據表遷移到到mysql時報錯。
異常分析
oracle的DATE類型的長度是7位,而mysql的datetime類型的長度最多6位,所以無法導入。
解決辦法
將oracle的DATE類型的時間字段修改為timestamp,并且長度修改為6,保存后即可傳輸成功。
備注:
Oracle的DATE數據類型存儲日期和時間值,其精度固定為秒(second),不支持毫秒、微秒或更小的單位?。DATE 字段的長度固定為 7 個字節。
若需更高精度(如毫秒或納秒),應使用TIMESTAMP類型,其默認精度為微秒(6位),可擴展至納秒(9位)?。TIMESTAMP類型默認 ?11 字節??。
所以DATE(n) 和 TIMESTAMP(n) 類型的長度含義是不同?的,DATE(n) 字段的n是指占用空間的大小; TIMESTAMP(n) 中的n是指小數秒的精度,如2023-04-01 12:00:00.123456,00.123456秒,小數秒精確到小數點后6位。