(as_id in varchar2)
is
Is_sqlstring varchar2(8000);
Is_viewstring varchar2(50);
Is_where varchar2(7500);
Is_clause varchar2(7000);
Is_columnid varchar2(100);
Is_indiobjid varchar2(16);
Is_acctcode varchar2(30);
BEGIN
Is_where:='';
Is_viewstring:='Indi_v_Query_Indi';cursor cur_queryclause is select ColumnID,Data from Rep_t_RunPorm where ID=as_id;
       begin
         open cur_queryclause;
         fetch cur_queryclause into Is_columnid,Is_clause;
         while cur_queryclause %found
         loop
         Is_where:=Is_where ||' and (' ||Is_clause ||')';
         fetch cur_queryclause into Is_columnid,Is_clause;
         end loop;
         close cur_queryclause;
         end;
if Is_where <>'' and Is_where is not null then
   Is_where=' where addmoney>0 and DeptID<>''0000'' and (DivID  is null or DivID<>'''') '||Is_where;
else
   Is_where=' where addmoney>0 and DeptID<>''0000'' and (DivID is  null or DivID<>'''') ';
end if;delete from Indi_t_IndiDeptTmp where ID=as_id;
Is_sqlstring:=' insert into Indi_t_IndiDeptTmp'||
'select '''||as_id||''',IndiObjID,null,''    ''+Abstracts,AcctCode,DeptID,DivID,addmoney,isnull((select sum(IndiMoney) from Indi_t_IndiBillDetail where SourceObjID=Indi_v_DeptIndi.IndiObjID),0),addmoney+updatemoney+backmoney-assignmoney-submoney,DocNo,DocDate,SourceTypeID'||
'from Indi_v_DeptIndi' ||Is_where;
execute immediate Is_sqlstring;
insert into Indi_t_IndiDeptTmp
select Is_id,null,null,'000',AcctCode,null,null,sum(addmoney),sum(usemoney),sum(balance),null,null,null from Indi_t_IndiDeptTmp group by AcctCode;
insert into Indi_t_IndiDeptTmp
select as_id, null,null,'合计',null,null,null,sum(addmoney),sum(usemoney),sum(balance),null,null,null from Indi_t_IndiDeptTmp where Abstracts='000'
delete Indi_t_IndiDeptTmp where addmoney=0 and usemoney=0 and ID=as_id;cursor indiobj1 is
        select sIndiObjID,AcctCode  from Indi_t_IndiDeptTmp where sIndiObjID is not null and dIndiObjID is null;
begin
open indiobj1;
fetch indiobj1 into Is_indiobjid,Is_acctcode;
while indiobj1%found
loop
insert into Indi_t_IndiDeptTmp
        select as_id,Is_indiobjidi,b.IndiObjID,'        '||b.Abstracts,Is_acctcode,b.DeptID,b.DivID,0,IndiMoney,0,a.DocNo,a.DocDate,b.SourceTypeID
        FROM Indi_t_IndiBillDetail b,Indi_t_IndiBillMain  a
        WHERE ( b.BillObjID = a.BillObjID) and b.SourceObjID=Is_indiobjid;
fetch indiobj1 into Is_indiobjid,Is_acctcode;
end loop;
close indiobj1;
end;
update a set Abstracts=b.AcctName from Indi_t_IndiDeptTmp a,Acct_t_AcctItem b where a.AcctCode=b.AcctCode and a.Abstracts='000' and ID=as_id;
RETURN ;
END INDI_SP_REP_DEPT;
大家看看,我写这个存储过程错在那里,为什么编译不过去?