1

以下の手順で私は何か間違ったことをしましたが、「次のいずれかを期待しているときに記号「終了」に遭遇しました」という間違った場所がわかりません」

create or replace PROCEDURE CRangeproc(in_termid IN VARCHAR2,in_cardno IN VARCHAR2,p_ResultSet OUT SYS_REFCURSOR,outcount OUT NUMBER)
AS 
BEGIN 
select count(*) into outcount from cardrangetable where PAN_LOW <= in_cardno AND  PAN_HIGH >=   in_cardno and terminal_id = in_termid;
IF outCount = 1 then
Open p_ResultSet FOR    
select ISSUERTABLEID,ACQUIRERTABLEID,PANLENGTH from cardrangetable where PAN_LOW <= in_cardno  AND  PAN_HIGH >= in_cardno and terminal_id = intermid;
CLOSE p_ResultSet;
else
end if; 
End CRangeproc;

前もって感謝します

4

2 に答える 2

2

else と end if の間にコードが必要です。または、else を削除します。

begin
   select count(*)
     into outcount
     from cardrangetable
    where pan_low <= in_cardno
      and pan_high >= in_cardno
      and terminal_id = intermid;
   if outcount = 1
   then
      open p_resultset for
         select issuertableid
               ,acquirertableid
               ,panlength
           from cardrangetable
          where pan_low <= in_cardno
            and pan_high >= in_cardno
            and terminal_id = intermid;
      exit when p_resultset%notfound;
      close p_resultset;
   else
      -- You need some code here or remove the else.
   end if;
end crangeproc;
于 2012-11-01T07:40:29.387 に答える