1.違反唯一主鍵約束條件:問題是表中有倆個主鍵,將備用主鍵替換成真正的主
鍵或者是沒有對數據做出處理加這句話and cft.DEL_FLAG!='1'或者要到的庫有此數據
2.field 某列 is required and couldn't be found在表輸入填上‘XXX‘ as 某列
3.某列是無效標識,把那列在表輸入去掉
4.無法將null插入某列 換個日期 可以去原表里面找值;
5.文字格式與字符串不匹配 原因是倆個庫給出的時間格式不一樣,用substr截取好就行了
如:
字段設置時--t1.was_Deliveried_Date as FMRQ,
to_date(substr(t1.was_Deliveried_Date,1,10),'yyyy-MM-dd') as FMRQ,
截取時間時
and to_date(substr(t1.was_Deliveried_Date,1,10),'yyyy-MM-dd') = to_date('2015-01-29','yyyy-MM-dd');
6.視圖給出的日期不是正常格式的:未改格式之時是2月14日2014年
Cast(wommat.CREATE_DATE As Date) as SJSCSJ
--wommat.CREATE_DATE as SJSCSJ
7.沒有可用時間的,先選主表上時間,如不行在選附表
kettle報錯類型:(tb_jktj_examinfo;tb_gxy_hzglk;tb_gxy_hzsfk;tb_hzxx這幾張表具有代表性)
8.表輸入0初始化失敗! 原因:庫沒改對
9.the tablename is not defined(empty) 原因:區分數據不要勾
10.月份中日的值必須階於1和當前月最后一日之間
解決方式:case when csrq > sysdate then to_date (to_char(sysdate,'yyyy-mm--dd'),'yyyy-mm-dd') else csrq end csrq
11.字符類型不對時,先看數據庫對應字段是什么類型,然后在kettle改一致
12.還有常用的方式把SQL粘出來看
13.把日期做成活的
where JLSJ_YWK between to_date(to_char(${startDate},'yyyy-mm-dd'),'yyyy-mm-dd') and to_date(to_char(${endDate},'yyyy-mm-dd'),'yyyy-mm-dd')
14.無效數字:
首先關注關聯查詢的字段,其次重點去關注number類型的,再去找varchar類型的(varchar類型的需要關注是否超出了長度)在kettle的字段選擇里面設置number的類型
如果實在找不到那就把SQL在數據庫里運行。有時候也有可能是語句的問題。
以上倆種還是不能解決問題,那么只能根據報錯來,弄成空看哪個報錯。比如精度超出范圍那就
‘ ’ as 字段出錯那就是它了。
把整數字段to_number一下
15.- ORA-01013: 用戶請求取消當前的操作
SQL執行超時,重新來一邊
16."TB_JKTJ_EXAMINFO"."PFDM" 的值太大 (實際值: 4, 最大值: 1)
找出最大值的:
select max(lengthb(t.gmdm)) from tb_jktj_examinfo t group by t.gmdm
找出最大值里面具體寫的是什么:
select t.gmdm from tb_jktj_examinfo t group by t.gmdm
然后進Kettle里面修改
17.值大於為此列指定的允許精度 直接用上共面的sql來排除number,double 和上面9都是找出來截取字段
18.無效標識是目的端沒有源端字段,把源端字段刪除;還有種可能是輸出表的目標表名不對。
19.文字與格式字符串不匹配 在替換轉換那是類型設置的不對
20. Couldn't execute SQL: TRUNCATE TABLE TB_HZXX(資源正忙, 但指定以 NOWAIT 方式獲取資源, 或者超時失效)
21.表輸出:無法初始化至少一個步驟. 執行無法開始!
這個是目的庫不通,就像抽取的數據不接收。
22.在要求輸入數字處找到非數字字符: 在時間的位置上填寫了橫桿
23. ORA-01779: 無法修改與非鍵值保存表對應的列
24.SqlServer String 轉為 Date 類型 CONVERT(DATETIME,YSTZSJ)as YSTZSJ
25. Because of an error, this step can't continue:
org.pentaho.di.core.exception.KettleStepException:
The tablename is not defined (empty)
還有什么連接不到數據庫什么的,連接錯誤什么得
解決辦法:在表輸出得提交記錄數量改為500或更小
26.數據類型不一致: 應為 CHAR, 但卻獲得 NUMBER 解決方法:檢查了下第一個返回的是‘0’(char),而后來返回的是number,於是就出現錯誤。將引號去掉,即讓第一種情況也返回number值,就可以了。(就是將 ‘0’ 改為 0 )
27.表或試圖不存在:可能的原因是裁減表出不能打對勾
28.kettle 出現不支持的SQL92 不管標記是啥,都是因為表輸入的替換SQL語句里的變量沒有打鈎
29.The tablename is not defined : 去掉表輸出中的“表分區數據”
30.數據抽取到一半報錯表或視圖不存在:在表輸出里的目標模式清空;表輸入的數據庫目的端沒有選對;也有可能數據庫變動導致。
31. 輸入值對於日期格式不夠長:在kettle在字段選擇里面設置日期
32.ORA-01840: 輸入值對於日期格式不夠長 在kettle里設置date格式
