我在一个过程使用了另一个过程,可是执行总是不能达到预期效果,存储过程如下:
CREATE OR REPLACE PROCEDURE
            SAJET.SJ_CHK_TIME_OUT(TSN IN VARCHAR2, TRES OUT VARCHAR2) IS
i number;
ttime1 date;
ttime2 date;
--tresult VARCHAR2(20);
BEGIN
  -- OK := 'CMD NG';
select out_process_time into ttime1 from g_sn_status where serial_number=TSN;
select sysdate into ttime2 from dual;
i:=round((ttime2-ttime1)*24);
   if i<10 then
     tres:='TIME NOT OVER!';
     ELSE 
       TRES :='OK';
   end if;   
END;
/在另一个过程中调用:
CREATE OR REPLACE PROCEDURE SAJET.SJ_EDA_SN_TRANSFER4 (
   TTERMINALID     IN       NUMBER,
   TREV     IN       VARCHAR2,
   TEMP     IN       VARCHAR2,
   TWO     IN       VARCHAR2,
   TNOW     IN       DATE,
   TRES        OUT      VARCHAR2,
   TDEFECT     IN       VARCHAR2,
   TNEXTPROC     OUT      VARCHAR2
)
IS
   CEMPID NUMBER;
   --TTRES VARCHAR2(20);
BEGIN
   TRES := 'OK';
   SAJET.SJ_GET_EMPID(TEMP, CEMPID);  
   SAJET.SJ_CHK_TIME_OUT(TREV, TRES);   
   IF TRES = 'OK' THEN
      SAJET.SJ_TRANSFER(TTERMINALID, TREV, TDEFECT, TNOW, TEMP, TTRES, TNEXTPROC);
      ELSE
      TRES:='TIME NOT OVER!';
   END IF;   IF TRES = 'OK' THEN
      COMMIT;
   ELSE
      ROLLBACK;
   END IF;
EXCEPTION
   WHEN OTHERS THEN
      TRES := 'SJ_EDA_SN_TRANSFER4 ERROR';
END;
/
预期的效果应该是if i<10 then  tres:='TIME NOT OVER!';但是这个始终都没有出现,都是i>10的结果,直接显示了OK,而我在TOAD中调用时,反馈的却是正常的