【问题标题】:SQL code giving errors ORA-01403, ORA-06512, ORA-04088 when using an insert statement with a where clause使用带有 where 子句的插入语句时出现错误 ORA-01403、ORA-06512、ORA-04088 的 SQL 代码
【发布时间】:2023-02-20 22:52:00
【问题描述】:

我正在尝试使用以下 SQL 代码在表中插入新行。但是,我似乎收到错误 ORA-01403:未找到数据、ORA-6512 和 ORA-04088:触发器执行错误。

我单独运行了 select 语句,它按预期运行并输出了正确的数据。当我包含插入语句时,它似乎出错了。

这个脚本有什么明显的错误吗?

INSERT INTO mem_care_bn (
    client_ref, 
    member_ref, 
    employment_ref, 
    benefit_ref, 
    date_updated, 
    updated_by, 
    benefit_code, 
    date_fr, 
    date_to, 
    benefit_total,
    trans_control,
    unique_ref
)
SELECT 
    mcb.client_ref, 
    mcb.member_ref, 
    '1', 
    '1', 
    mcb.date_updated, 
    'USERA',
    'PMABC', 
    mcb.date_fr, 
    mcb.date_to, 
    mcb.benefit_total,
    mcb.trans_control,
    mcb.unique_ref
    
FROM 
    mem_care_bn mcb
    JOIN mem_view mv1 ON mv1.member_ref = mcb.member_ref
WHERE 
    mcb.benefit_code = 'POMAIN'
    AND mcb.employment_ref = mv1.employment_ref
    AND mv1.status = 'Z'
    AND mv1.scheme IN ('BOL', '005')
    AND mv1.member_ref IN (
        SELECT mv2.member_ref 
        FROM mem_view mv2
        WHERE mv2.status = 'A'            
        AND NOT EXISTS (
            SELECT 1 
            FROM mem_care_bn mcb2
            WHERE mcb2.member_ref = mv2.member_ref
            AND mcb2.employment_ref = mv2.employment_ref
            AND mcb2.benefit_code NOT IN ('PMABC') OR mcb2.benefit_code IS NULL
        )
    )

【问题讨论】:

    标签: sql database plsql


    【解决方案1】:

    是的,你的问题是在 mem_care_bn 上设置的 Trigger

    【讨论】:

      猜你喜欢
      • 2019-10-17
      • 2015-08-06
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 2020-03-10
      • 2022-01-20
      • 2020-08-23
      • 1970-01-01
      相关资源
      最近更新 更多