declare
id number;
c_date date;
p_date date;
p_amount number;
begin
id :=min(ptp.contract_id);
c_date :=ptp.creation_date;
p_date :=ptp.payback_date;
p_amount :=ptp.payback_amount;
select ptp.rownum, ptp.contract_id, ptp.creation_date, ptp.payback_amount from
(select
to_number(li.LOAN_INFO_CODE) as contract_id,
to_date(to_char(pi.CREATION_DATE,'yyyymmdd'),'yyyy-mm-dd') as CREATION_DATE,
pi.PAYBACK_AMOUNT,
to_date(to_char(pi.PAYBACK_DATE,'yyyymmdd'),'yyyy-mm-dd') as PAYBACK_DATE from pi
left join co on pi.CASE_OPERATION_ID=co.ID
left join cc on co.CASE_ID=cc.ID
left join li on cc.LOAN_INFO_ID=li.ID
where pi.CREATION_DATE>=to_date('20130601','yyyymmdd')
order by contract_id,creation_date,payback_date,payback_amount) ptp
where
if ptp.contract_id=id
then
if ptp.creation_date>=p_date
then id :=ptp.contract_id
c_date :=ptp.creation_date
p_date :=ptp.payback_date
p_amount :=ptp.payback_amount
else
if ptp.payback_amount>=p_amount and ptp.payback_date<=p_date
then ptp.delete (ptp.rownum-1)
id :=ptp.contract_id
c_date :=ptp.creation_date
p_date :=ptp.payback_date
p_amount :=ptp.payback_amount
else ptp.delete (ptp.rownum)
end if;
end if;
end if;
end;
下面是运行时显示的错误
ora-06550:第23行,第6列;
pl/sql: ora-00920: 无效的关系运算符
ora-06550:第11行,第3列;
pl/sql: sql statement ignored
ora-06550:第39行,第9列;
pls-00103: encountered the symbol "if" when expecting one of the following:
: 〈an identifier〉 〈a double-quoted delimited-identifier〉