如何解决PL/Sql函数编译错误

How to solve PL/Sql Function compilation error

我有两个 table。一个来自服务器,另一个来自 host.I 必须合并它们并计算总捐赠者 gender.I 试图 运行 这个 function.But 显示 error.How 我可以解决吗?

**create or replace function count_donor_by_gender(g in Donor.gender%TYPE)
    return number
    is
    
    g_donor number:=0;
    
begin

    FOR R IN (select *  from Donor@site_link union Donor) LOOP
        if(R.gender=g) then
            g_donor:=g_donor+1;
        end if;
    END LOOP;
    
    return g_donor;

end count_donor_by_gender;
/**

错误在这里

select *  from Donor@site_link union Donor

“联合”语句将 2 个 SELECT 语句的结果合并为一个,因此您需要

select *  from Donor@site_link union select * from Donor

请注意,“UNION”会导致数据库删除重复项,这可能会降低性能。如果不打算删除重复项,请改用“UNION ALL”