gpt4 book ai didi

oracle - 检查是否存在 PLS-00405 : subquery not allowed in this context

转载 作者:行者123 更新时间:2023-12-05 04:06:18 24 4
gpt4 key购买 nike

我有它从 TableA 中选择的游标,然后将 Fetch Loop 插入到 TableB 中。

我想检查该值是否已存在于 TableB 中。

如果它存在,那么我想跳过插入。

create or replace
PROCEDURE DAILY_RPT (
v_start IN DATE,
v_end IN DATE)

IS

ao_out_no out_pair.out_no%type;

cursor get is
SELECT ao_out_no from tableA;

BEGIN
open get;
LOOP
fetch get into ao_out_no;
EXIT WHEN get%NOTFOUND;
if (ao_out_no = (select out_no from TableA where out_no = ao_out_no) THEN
--DO NOTHING
else
INSERT INTO TABLEB(OUT_NO) VALUES (ao_out_no);
end if;

END LOOP;
close get;

END;

我使用了 IF CONDITION 但是,我在 if 条件中使用了变量并且我得到了下面。

PLS-00405: subquery not allowed in this context

if (ao_out_no = (select out_no from TableA where out_no = ao_out_no) THEN

最佳答案

您根本不需要游标或 PL/SQL:

INSERT INTO TABLEB(OUT_NO) 
SELECT ao_out_no
FROM tableA ta
WHERE ... -- filtering rows
AND NOT EXISTS (SELECT * From TableB tb WHERE tb.OUT_NO = ta.ao_out_no);

关于oracle - 检查是否存在 PLS-00405 : subquery not allowed in this context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49948929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com