【问题标题】:getting ORA-01407:cannot update to null error得到 ORA-01407:cannot update to null 错误
【发布时间】:2019-12-31 05:33:07
【问题描述】:

我收到 ORA-01407:cannot update to null error for below query, 请帮忙解决这个问题。

UPDATE PS_CT_IQN_ACC_STG stg
   SET (CTS_WO_ID,CTS_WO_END_DATE,CTS_WO_REG_RATE,CTS_WO_OT_RATE,VENDOR_ID) = (select CT_WORK_ORDER_ID,END_DATE,CT_WO_RATEREGULAR,CT_WO_RATEOVERTIME,CT_WO_VENDOR_ID from ps_cts_iqn_empl_wo WO1
where WO1.CT_WORK_ORDER_ID= (select max(CT_WORK_ORDER_ID) from ps_cts_iqn_empl_wo WO where WO.cts_peoplesoft_id = STG.EMPLID
   AND WO.ct_wo_project_id  = STG.project_id  and stg.report_due_date between WO.start_date and WO.end_date  )
   and WO1.lastupddttm = (select max(lastupddttm) from ps_cts_iqn_empl_wo WO2 where WO2.cts_peoplesoft_id = STG.EMPLID
   AND WO2.ct_wo_project_id  = STG.project_id  and stg.report_due_date between WO2.start_date and WO2.end_date  ))

【问题讨论】:

  • 分享您的示例输出和表架构以便更好地理解。

标签: sql oracle sql-update oracle12c


【解决方案1】:

您的查询正在更新表 PS_CT_IQN_ACC_STG 的以下 5 列:

CTS_WO_ID
CTS_WO_END_DATE
CTS_WO_REG_RATE
CTS_WO_OT_RATE
VENDOR_ID

SELECT 更新列值的查询必须返回 NULL 用于其中应用了 NOT NULL 约束 OR check of not null 的列之一。

您可以从以下字典视图中查看:

USER_TAB_COLS -- NULLABLE column will be N for not null columns
USER_CONSTRAINTS -- Type will be C with Search_condition like <COLUMN_NAME> IS NOT NULL for not null columns.

干杯!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 2019-10-04
    • 1970-01-01
    • 2010-12-26
    • 2021-03-19
    相关资源
    最近更新 更多