Kettle 7.1 表输入控件预览字段有值但插入/更新中系统报错为null

Spoon:图形化界面工具(GUI方式),Spoon允许你通过图形界面来设计Job和Transformation,可以保存为文件或者保存在数据库中。也可以直接在Spoon图形化界面中运行Job和Transformation
版面规则
请务必将问题描述清晰!!!1.软件版本:2.发生频率:每次/经常/偶尔3.报错日志截图(可以直接粘贴图片):
回复
myalctel
帖子: 2
注册时间: 2019年 8月 23日 星期五 4:55 pm

Kettle 7.1 表输入控件预览字段有值但插入/更新中系统报错为null

#1

帖子 myalctel » 2019年 8月 23日 星期五 5:42 pm

     我是kettle7.1,以下图转换为例子。测试用sdc_plu_035去更新sdc_plu_syt(sdc_plu_035和sdc_plu_syt表结构相同),总是提示null错误。


 1. 问题是在‘表输入’预览时候,item_no和style_no都是有值得,一到‘插入/更新’步骤就报错说是空值如下:

2019/08/23 17:34:06 - 插入 / 更新.0 - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : Unexpected error

2019/08/23 17:34:06 - 插入 / 更新.0 - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : org.pentaho.di.core.exception.KettleStepException: 

2019/08/23 17:34:06 - 插入 / 更新.0 - Error in step, asking everyone to stop because of:

2019/08/23 17:34:06 - 插入 / 更新.0 - 

2019/08/23 17:34:06 - 插入 / 更新.0 - Error inserting/updating row

2019/08/23 17:34:06 - 插入 / 更新.0 - ORA-01400: 无法将 NULL 插入 ("CRMUSER"."SDC_PLU_SYT"."ITEM_NO")


2019/08/23 17:34:06 - 插入 / 更新.0 - 

2019/08/23 17:34:06 - 插入 / 更新.0 - 

2019/08/23 17:34:06 - 插入 / 更新.0 - at org.pentaho.di.trans.steps.insertupdate.InsertUpdate.processRow(InsertUpdate.java:313)

2019/08/23 17:34:06 - 插入 / 更新.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)

2019/08/23 17:34:06 - 插入 / 更新.0 - at java.lang.Thread.run(Thread.java:748)

2019/08/23 17:34:06 - 插入 / 更新.0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 

2019/08/23 17:34:06 - 插入 / 更新.0 - Error inserting/updating row

2019/08/23 17:34:06 - 插入 / 更新.0 - ORA-01400: 无法将 NULL 插入 ("CRMUSER"."SDC_PLU_SYT"."ITEM_NO")


2. 因为sdc_plu_syt的(item_no和style_no)有非空约束的,去掉约束可以运行不再报错,但是还是更新到sdc_plu_syt成空值。


而且,我更换过5.0.1版本4.4版本的kettle都是同样的报错,就算我在表输入控件间加入文本输出tem_no和style_no都是有值得,我甚至怀疑kettle的插入/更新控件有bug,请大神们看看是否遇过此类问题。谢谢


create table SDC_PLU_SYT

(

  item_ref_no     VARCHAR2(40) not null,

  ref_type        NUMBER(2) not null,

  short_descr     VARCHAR2(48),

  class_ref_no    NUMBER(9),

  time_stamp      DATE,

  item_no         VARCHAR2(40) not null,

  style_no        VARCHAR2(40) not null,

  create_date     DATE,

)



附件
11.jpg
11.jpg (80.83 KiB) 查看 124 次
333.jpg
333.jpg (77.88 KiB) 查看 124 次
444.jpg
444.jpg (189.26 KiB) 查看 124 次

myalctel
帖子: 2
注册时间: 2019年 8月 23日 星期五 4:55 pm

Re: Kettle 7.1 表输入控件预览字段有值但插入/更新中系统报错为null

#2

帖子 myalctel » 2019年 8月 29日 星期四 3:22 pm

       再明确一下 我电脑的配置是 window 7 旗舰版 SP1,jdk1.8.0_211,data-integration\lib下的ora驱动用得是ojdbc14.jar ,kettle7.1下载来自:

https://sourceforge.net/projects/pentaho/files/Data%20Integration/

后来测试同样的问题:由于error msg 提示大多数情况下是最后一个有非空约束的列报错,因此把表加到16列其中设置8个非空约束列开始逐渐删除列和减少非空约束列的设置。发现 ‘插入/更新’模块在共7列数据并且4个非空约束的情况下都是正常的,一旦超出就会出现‘表输入’有值但是转换执行后‘插入/更新’都是空值得情况。

真的不太明白原因了,望大家指点。谢谢     


admin
管理员
帖子: 47
注册时间: 2019年 3月 25日 星期一 5:03 pm

Re: Kettle 7.1 表输入控件预览字段有值但插入/更新中系统报错为null

#3

帖子 admin » 2019年 9月 2日 星期一 4:24 pm

数据库中不能插入NULL,手工执行一下sql语句试试


回复