如何调试此SQL错误消息;can';t插入空“;?

如何调试此SQL错误消息;can';t插入空“;?,sql,oracle,Sql,Oracle,我收到了这个错误消息,但是在第131行有一个MERGE语句 OUT_RC = 37 ORA-01400: cannot insert NULL into ("PARTY"."SOURCE_SYSTEM_PARTY_CHARC"."PTY_CHARC_TY_VLU"): ORA-06512: at "PARTY.UP_MANAGE_SRC_SYS_PARTY_CHAR", line 131 她的eis更多代码(包围在上面的MERGE行中: MERGE INTO PARTY.SOURCE_SYST

我收到了这个错误消息,但是在第131行有一个
MERGE
语句

OUT_RC = 37 ORA-01400: cannot insert NULL into ("PARTY"."SOURCE_SYSTEM_PARTY_CHARC"."PTY_CHARC_TY_VLU"): ORA-06512: at "PARTY.UP_MANAGE_SRC_SYS_PARTY_CHAR", line 131
她的eis更多代码(包围在上面的
MERGE
行中:

MERGE INTO PARTY.SOURCE_SYSTEM_PARTY_CHARC SSPC
  USING (SELECT l_sspc_chgs(index).PTY_CHARC_TY_ID AS PTY_CHARC_TY_ID, 
                l_sspc_chgs(index).SRC_SYS_PTY_ID AS SRC_SYS_PTY_ID, ... 

l_sspc_chgs
用于批量收集(从代码顶部):

列“PARTY”。“SOURCE\u SYSTEM\u PARTY\u CHARC”。“PTY\u CHARC\u TY\u VLU”必须具有“notnull”约束

试着替换

TYPE sspc_chgs IS TABLE OF SRC_SYS_PTY_CHARC_STG_CUR%ROWTYPE
         INDEX BY PLS_INTEGER; 

l_sspc_chgs sspc_chgs;


显示更多您拥有的SQL代码,什么是
l\u sspc\u chgs(索引).PTY_CHARC_TY_ID
和其他?这是一个与尝试插入空值的SELECT的合并。请检查您的SELECT。@Zaratutra-好的,在添加任何SQL问题时,请始终记住发布一个工作测试用例。其中包括create语句、少量INSERT语句,并显示您使用SQL*Plus尝试的内容。另一个重要的是,您可以我没有告诉我们它是SQL还是PL/SQL?如果您使用的是PL/SQL,那么请删除所有异常并重新执行以获得准确的行号。正如我所说的,要知道它是SQL还是PL/SQL总是第一件事。错误堆栈会因代码而异。我建议,如果您无法摆脱异常块,请添加dbms_utility.format_error_stack和dbms_utility.format_error_backtrace。并放置RAISE以重新引发错误并将其返回给调用者。非常感谢-这已修复它!!
TYPE sspc_chgs IS TABLE OF SRC_SYS_PTY_CHARC_STG_CUR%ROWTYPE
         INDEX BY PLS_INTEGER; 

l_sspc_chgs sspc_chgs;
l_sspc_chgs(indx).PTY_CHARC_TY_VLU AS PTY_CHARC_TY_VLU
NVL(l_sspc_chgs(indx).PTY_CHARC_TY_VLU, 'Default value') AS PTY_CHARC_TY_VLU