当前位置: 首页 > 面试题库 >

为什么会出现此错误?“无法将null插入'VALUE.VALUE_TX'

冀永寿
2023-03-14
问题内容

因此,最近几天我一直在尝试解决此错误。我有一个存储过程,将一个条目插入到我的登台表中。一旦登台表插入了一行,就会触发一个触发器,该触发器将数据加载到其他两个表中。我的触发代码如下:

create or replace TRIGGER xml_load_trigger_value
AFTER INSERT
ON xml_hours_load_2
FOR EACH ROW
  WHEN (
NEW.processed = 'N'
  ) DECLARE 
Value_ID Number;
pValue_ID Number;
Calculation_ID Number;
pCalculation_ID NUMBER;
Calculation_Value_ID Number;
Hr_Utc Varchar2(4);
p_Entity_Address_ID Varchar2(50);
New_Value_ID Number;
New_Calculation_ID Number;
New_Calculation_Value_ID Number;
New_Value_Tx varchar2(50);
NEW_UTC_Offset varchar2(50);
Survey_Respondent_ID varchar2(50);
NEW_submission_id varchar2(50);


--PRAGMA AUTONOMOUS_TRANSACTION;

BEGIN

Value_ID := value_value_id_seq.NEXTVAL;
New_Value_ID := Value_id;
Calculation_Value_ID :=CALCULATION_VALUE_CALCULATI329.NEXTVAL;
calculation_id := Calculation_Calculation_ID_SEQ.NEXTVAL;


Insert into Value
(VALUE_ID, PRODUCT_ID, DATA_SOURCE_ID, UNIT_CD, VALUE_TX, UTC_OFFSET,     DATA_DATE, HR_UTC, HR, HR_NUM, DATA_CODE, CREATE_DT, CREATE_USER_ID)
VALUES
(Value_ID, '109' , '269', 'NA', :NEW.Value_Tx, :NEW.UTC_Offset,     :NEW.Data_Date, :NEW.hr_utc, :NEW.hr, :NEW.hr_num, :NEW.data_code, SYSDATE, '15');
--
Insert into Submission
(SURVEY_RESPONDENT_ID, SUBMISSION_DT, SUBMISSION_TYPE_ID, SUBMISSION_NAME_TX, SUBMISSION_SEQ_NB, CREATE_DT, CREATE_USER_ID, MODIFY_DT, MODIFY_USER_ID, EFFECTIVE_DT, INACTIVE_DT)
VALUES
('2527451', :NEW.Data_Date, '1', '20190418', '0', sysdate, '1', null, null, null, null);
--
Insert into Submission_Value
(Submission_ID, Value_ID, Form_Field_Id, Create_DT, Create_user_id, Modify_DT, Modify_user_id, Effective_Dt, Inactive_DT)
VALUES
((Select Submission_ID from Submission where Survey_respondent_Id = '2527451' and rownum = 1), Value_Id, '10466', sysdate, '930', null, null, null, null);
END;

问题答案:

错误消息非常清楚::NEW.Value_Tx为null,并且您的表Value在column上具有NOT
NULL约束VALUE_TX。因此这可以使Oracle正常工作,并执行表上定义的数据完整性规则。

因此,您需要做的是找出为什么:NEW.Value_Tx为空的原因。它为null,因为在您要插入的行中为null
xml_hours_load_2。这就是您需要解决的问题。

如果事实证明触发中存在null值是有正当理由的,那么您需要实现一些解决方法。也许您需要传递一个硬编码的值。也许您需要生成一个值(可能带有序列)。业务规则应为此指定逻辑。



 类似资料:
  • 问题内容: 我正在尝试使用DB2运行一个简单的SQL语句,并且遇到了一些问题。我想在txt / db2文件中有一个脚本,并让引擎处理所有命令 这是脚本: 当我运行db2 -f / pathtofile时,我得到: 我究竟做错了什么?我的脚本有问题吗?另外,为什么没有“;”也能正常工作 我的陈述结尾处的终止符? 谢谢, 问题答案: 可能会有帮助, http://www.uc.edu/R/r25/do

  • 错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码:

  • 问题内容: 我正在执行以下AJAX调用: 而且没有收到预期的警报消息。相反,Firebug说我收到“未实现501”。 为什么?我需要怎么做才能解决此问题? 如果我转到Firebug中与AJAX调用相对应的URL,则会下载一个JSON文件,其中包含预期的数据。 我注意到的一件事是,萤火虫说的是OPTIONS而不是GET: 替代文字http://grab.by/grabs/b1a13d92a4fc69

  • 我实现了以下REST调用: 也是一个提供和使用application/x-protobuf的提供者类: 我的pom。xml看起来像: 我的小部件。原型: 选项java_package=“example”;选项java\u outer\u classname=“WidgetsProtoc”; 对于http://localhost:8080/RESTfulExample/widgets我得到以下错误消

  • 问题内容: 我已经阅读了 为什么在尝试在数据库中加载Blob时会出现java.lang.AbstractMethodError?,下载了我能找到的所有11g jdbc驱动程序,并将它们作为库和/或jar文件添加到了我的NetBeans应用程序中。我仍然不断收到相同的AbstractMethodError,这让我很生气!任何指导将不胜感激! 错误信息: 问题答案: 问题的原因是软件不兼容(jar文件

  • 使用上面的代码,错误发生在以下行:这确实很奇怪,因为我确信我的分配是正确的。是否有可能它唯一的Eclipse没有正确解析代码?