为什么我的更新语句说 - “无法将null插入gitb_auto_debit_upload.status”。第二个查询返回了一个记录,其中process_status列的值为'P'。
Update gitb_auto_debit_upload a
set status = (select nvl(process_status,'O') from gitb_daily_log b
where b.interface_code = 'PHP661OW'
and b. process_ref_no = '4708'
and a.refno = b.external_ref_no
and a.recordno = b. seq_no
) ;
select * from gitb_auto_debit_upload a, gitb_daily_log b where b.interface_code = 'PHP661OW'
and b. process_ref_no = '4708'
and a.refno = b.external_ref_no
and a. recordno = b. seq_no
答案 0 :(得分:0)
错误消息来自gitb_auto_debit_upload中的记录,其中select(更新中的一个)语句不返回任何行。
您的update语句处理gitb_auto_debit_upload的所有记录。 您的select(用于测试状态值的那个)语句仅表示gitb_daily_log中存在记录的那些记录。
您需要将update语句更改为仅更新select返回行的行或将NVL()更改为select。