1. 常見報錯
報錯 | 可能原因 | |
---|---|---|
1 | 無法将 NULL 插入XX | 數據庫表設置了某字段不能爲空,但是該字段提交的數據中存在空值 |
2 | check constraint (NASMES.SYS_C0014107) violated | 提交的數據中存在違反數據庫設置的約束的數據,比如某字段設置爲了主鍵不能有重複值,但是提交的數據中存在重複值 |
3 | 違反唯一鍵約束 | |
4 | Violate unique constraint on[***] | |
5 | no operation allowed after statement closed | 數據庫設置了權限,限制了增删改sql語句的執行 |
6 | no operations allowed | |
7 | ora-01031 權限不足 | |
8 | 當 IDENTITY_INSERT 設置爲 OFF 時,不能爲表 'XXX' 中的标識列插入顯式值 | 對自增長id進行修改時的報錯,可參考數據庫自增長ID填報解決 |
9 | 無效數字 | 某個提交值和其入庫字段類型不一緻 |
10 | 批處理異常 | |
11 | No value specified for parameter XX | |
12 | 數據提交錯誤,索引中丢失in 或out | |
13 | 沒有爲參數号XX設置值 | |
14 | 數據列類型錯誤/不匹配 | |
15 | FR-Engine-Write_Column_Type_Mismatch | |
16 | Data too long for column 'file' at row X | 某個提交值的長度超過了其入庫字段的限制 |
17 | 将截斷字符串或二進制數據 | |
18 | ERRORCODE=-4229, SQLSTATE=null | |
19 | 公式解析錯誤 | 某個公式存在問題 |
20 | Task DCL error HiveException: [Error 20132] Error, you should set transaction.type before any DCL statement | 星環數據庫的報錯,未在DCL聲明前定義事務類型,可嘗試在數據連接url後增加transaction.type=inceptor參數 |
21 | Lock wait timeout exceeded; try restarting transaction | 填報事務已鎖死,需要先在數據庫解鎖對應事務,才可繼續填報 |
22 | Attempt to do update or delete using transaction manager that does not support these operations | hive數據庫中沒有開啓update和delete操作,需要在數據庫開啓 |
23 | 沒有爲參數号設置值 | 檢查填報屬性的「内置SQL」提交設置中,「值」是否都已配置且配置正确 |
2. 排查方式
在了解了報錯可能的原因後,可以采取一些針對性的方式去定位問題,下面列出幾種常用的方法。
對填報屬性進行二分法測試,定位到出問題的字段,查看其綁定的值是否有問題。
對模板結構進行簡化,删除不相關的元素,定位出問題點。
在數據庫新建一個簡單的表來測試是否提交成功。
更換其他數據庫來提交測試。