【发布时间】: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
)
)
【问题讨论】: