本帖最后由 woshifenmi 于 2009-08-31 13:03:48 编辑

解决方案 »

  1.   

     TIME:=CAST(TIME AS VARCHAR2(6)); 
    改成 TIME:=CAST(TIME AS VARCHAR2); 试下
      

  2.   


    CREATE OR REPLACE PROCEDURE ADDTIME(TIME_OUT OUT  PLS_INTEGER,
                                                  INC_SECOND IN  PLS_INTEGER)IS
      HOUR PLS_INTEGER;
      MINUTE PLS_INTEGER;
      SECOND PLS_INTEGER;
      TIME VARCHAR2(6);
    BEGIN
      HOUR:=CAST(INC_SECOND/3600 AS PLS_INTEGER);
      MINUTE:=CAST((INC_SECOND-HOUR*3600)/60 AS PLS_INTEGER);
      SECOND:=(INC_SECOND MOD 60);
      TIME:=TIME+HOUR*10000+MINUTE*100+SECOND;
     -- TIME:=CAST(TIME AS VARCHAR2);
      HOUR:=(TIME/10000+(TIME/100 MOD 100)/60)*10000;
      MINUTE:=((TIME MOD 10000)/100 MOD 60)*100+(TIME MOD 100)/60*100;
      SECOND:=((TIME MOD 100) MOD 60);
      TIME_OUT:=HOUR+MINUTE+SECOND;
    END; 
      

  3.   

    Oracle 10.2 编译通过。。你看看行不行
      

  4.   

    传出参数里面有TIME,里面又定义了一个同名参数TIME,当然要报错
      

  5.   

    跟INTGER一样,ORACLE推荐用PLS_INTEGER。搂主得注意命名规范了,这个是习惯问题。
    你的问题就是因为名字起得不好。