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

Plsql 如何解决PL/Sql函数编译错误,plsql,oracle10g,Plsql,Oracle10g,我有两个表。一个来自服务器,另一个来自主机。我必须合并它们,并按性别计算捐赠者总数。我尝试运行此函数。但它显示错误。我如何解决它 **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

我有两个表。一个来自服务器,另一个来自主机。我必须合并它们,并按性别计算捐赠者总数。我尝试运行此函数。但它显示错误。我如何解决它

**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
“union”语句将两条SELECT语句的结果追加到一条语句中,因此您需要

select *  from Donor@site_link union select * from Donor

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

Hi。错误是怎么说的?缺少Select关键字和sql语句被忽略…我添加了一个picI,它有两个表。一个来自服务器,另一个来自主机。我必须合并它们,并按性别统计捐赠者总数