PL/SQL如何排错

Harryjing2018 2020-01-15 08:17:53
Current User: XXXX
Current Database: DICT
Level: Informational
Code: ORA-01400
Location: dlgArrival.tblDetail
Text: cannot insert NULL into ("XXX"."OPERATION_HISTORY_TAB"."MANUFACTURING_COST")
ORA-06512: at "IFSAPP.RECEIVE_PURCHASE_ORDER_API", line 2779
ORA-06512: at "IFSAPP.RECEIVE_PURCHASE_ORDER_API", line 2313
ORA-06512: at line 1
Error Text:
IFSAPP.Receive_Purchase_Order_API.Packed_Arrival__( :i_hWndFrame.dlgArrival.lsResult,:i_hWndFrame.dlgArrival.lsArrivalResultKeys,:i_hWndFrame.dlgArrival.lsBarCodesAttr,:i_hWndFrame.dlgArrival.lsPackedMessage,:i_hWndFrame.dlgArrival.sPrintArrival,:i_hWndFrame.dlgArrival.sPrintBarCodes )




1.类似这样的错误怎么排错?是我这样么?
2.我如何分析这两段代码来排错?
...全文
163 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
js14982 2020-01-16
  • 打赏
  • 举报
回复
你找类似 insert into OPERATION_HISTORY_TAB 这样的语句,看数据是怎么传入这个表的,数据源是哪里
js14982 2020-01-16
  • 打赏
  • 举报
回复
引用 14 楼 Harryjing2018 的回复:
[quote=引用 13 楼 js14982 的回复:] 首先要确定你们的需求啊,该字段是否可为空 可为空:把这个字段改成允许空值(就那个√点上) 不可为空:找到空值所在的行,查看该行数据是否正常
找到空值所在的行,查看该行数据是否正常 ? 我是如何找,找到在那个表里哪个行找到这个MANUFACTURING_COST;我想通过后台找,前台好象不好找;[/quote] 数据是怎么插入到这个表里面的,数据源在哪里。是从哪个表插入到这个表中的,或者是前台输入的? 先找到数据源
Harryjing2018 2020-01-16
  • 打赏
  • 举报
回复
引用 13 楼 js14982 的回复:
首先要确定你们的需求啊,该字段是否可为空 可为空:把这个字段改成允许空值(就那个√点上) 不可为空:找到空值所在的行,查看该行数据是否正常
找到空值所在的行,查看该行数据是否正常 ? 我是如何找,找到在那个表里哪个行找到这个MANUFACTURING_COST;我想通过后台找,前台好象不好找;
js14982 2020-01-16
  • 打赏
  • 举报
回复
首先要确定你们的需求啊,该字段是否可为空 可为空:把这个字段改成允许空值(就那个√点上) 不可为空:找到空值所在的行,查看该行数据是否正常
Harryjing2018 2020-01-16
  • 打赏
  • 举报
回复
引用 16 楼 js14982 的回复:
你找类似 insert into OPERATION_HISTORY_TAB 这样的语句,看数据是怎么传入这个表的,数据源是哪里
谢谢你给我的思路,我觉得应该差不多了,我找到了方法;谢谢你,用户已经取消了这个单;
Harryjing2018 2020-01-15
  • 打赏
  • 举报
回复
引用 2 楼 js14982 的回复:
都提示了 cannot insert NULL into ("XXX"."OPERATION_HISTORY_TAB"."MANUFACTURING_COST") 不能将空值插入到OPERATION_HISTORY_TAB.MANUFACTURING_COST表中。 估计是该列上有非空约束。这种情况检查源数据是否满足要求然后想办法解决
我找到原因了,有可有是这里!
Harryjing2018 2020-01-15
  • 打赏
  • 举报
回复
MANUFACTURING_COST;这个应该是视图;没有什么非空约束 ;应该都在OPERATION_HISTORY_TAB里吧!
Harryjing2018 2020-01-15
  • 打赏
  • 举报
回复
引用 2 楼 js14982 的回复:
都提示了 cannot insert NULL into ("XXX"."OPERATION_HISTORY_TAB"."MANUFACTURING_COST") 不能将空值插入到OPERATION_HISTORY_TAB.MANUFACTURING_COST表中。 估计是该列上有非空约束。这种情况检查源数据是否满足要求然后想办法解决
这个是什么呢?好象表不, 是视图么? 估计是该列上有非空约束 (你是说这个表和视图里面,应该是这个意思吧)
js14982 2020-01-15
  • 打赏
  • 举报
回复
都提示了 cannot insert NULL into ("XXX"."OPERATION_HISTORY_TAB"."MANUFACTURING_COST") 不能将空值插入到OPERATION_HISTORY_TAB.MANUFACTURING_COST表中。 估计是该列上有非空约束。这种情况检查源数据是否满足要求然后想办法解决
Harryjing2018 2020-01-15
  • 打赏
  • 举报
回复
错误:貌似不能插入空值 我看到后面的代码 1:表示增加; 2:表示增加了一个生产日期?
Harryjing2018 2020-01-15
  • 打赏
  • 举报
回复
引用 11 楼 js14982 的回复:
看该列是否有非空约束啊
应该是,接下来我怎么做?
js14982 2020-01-15
  • 打赏
  • 举报
回复
看该列是否有非空约束啊
Harryjing2018 2020-01-15
  • 打赏
  • 举报
回复
引用 9 楼 js14982 的回复:
[quote=引用 6 楼 js14982 的回复:] OPERATION_HISTORY_TAB是表名,MANUFACTURING_COST是列名
在OPERATION_HISTORY_TAB表中找列MANUFACTURING_COST[/quote] 这个我找到了,然后呢?
js14982 2020-01-15
  • 打赏
  • 举报
回复
引用 6 楼 js14982 的回复:
OPERATION_HISTORY_TAB是表名,MANUFACTURING_COST是列名
在OPERATION_HISTORY_TAB表中找列MANUFACTURING_COST
js14982 2020-01-15
  • 打赏
  • 举报
回复
给了表名啊? 在该表里面找该列
Harryjing2018 2020-01-15
  • 打赏
  • 举报
回复
引用 6 楼 js14982 的回复:
OPERATION_HISTORY_TAB是表名,MANUFACTURING_COST是列名
MANUFACTURING_COST 我如何找到这个列名;我在IFSAPP.RECEIVE_PURCHASE_ORDER_API也没有找到这个;我怎么在数据库里找到这个列名在哪个表?谢谢
js14982 2020-01-15
  • 打赏
  • 举报
回复
OPERATION_HISTORY_TAB是表名,MANUFACTURING_COST是列名

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧