全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅
829 0
2013-07-10
悬赏 1 个论坛币 未解决
小弟刚刚开始自学plsql,在工作出现比较棘手的问题,而且时间紧迫,麻烦大神们指点迷津。
附件 调取有效ptp.txt
中为程序代码,最下方为执行后显示的错误编码,其中第12-21行已经过测试没有问题。
如果在这里说不清,烦请发邮件至357001913@qq.com或直接qq联系,qq号357001913.再次谢谢了!


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〉
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群