在包体里要多加几个is,还错了一个if语句

解决方案 »

  1.   

    改完结果如下:create or replace package body MYLIB IS
      DEBUG_FLAG BOOLEAN;
      USER_NAME VARCHAR(30);
      APPL_NAME VARCHAR2(30) ;
      MODL_NAME VARCHAR2(30);
      CONTEXT_PT VARCHAR2(30) ;
      RUN_DATE DATE ;  FUNCTION Bool_to_char(Pbool in BOOLEAN)
      RETURN VARCHAR2 is
        STR VARCHAR2(5) ;
      BEGIN
         IF (PBOOL) THEN
           STR := 'TRUE';
         ELSIF (NOT PBOOL) THEN
           STR := 'FALSE';
         ELSE
            STR := 'NULL' ;
         END IF ;
         RETURN(STR);
      END ;  FUNCTION CHAR_TO_BOOL(PStr in varchar2)  return Boolean is
        LStr varchar2(32767) ;
        LBool BOOLEAN := NULL ;
      BEGIN
        LSTR := UPPER(LTRIM(RTRIM(PSTR))) ;
        IF LSTR = 'TRUE' THEN
          LBool := True ;
        elsif lstr = 'FALSE' then
          LBool := False ;
        end if ;
        RETURN (LBOOL) ;
      end char_to_bool ;  FUNCTION CHAR_TO_NUMBER(PSTR in VARCHAR2 , PFormat in varchar2 default null)
      RETURN NUMBER is
        LNUMBER NUMBER;
      BEGIN
        if pformat=null then
          return(TO_NUMBER(PSTR));
        else
          return (TO_NUMBER(PSTR, PFormat)) ;
        end if ;
        EXCEPTION
          WHEN OTHERS THEN
            return(null) ;
      END CHAR_TO_NUMBER;  PROCEDURE DEBUG_ON is
      begin
        debug_flag := True ;
      end DEBUG_ON ;  PROCEDURE DEBUG_OFF is
      begin
        debug_flag := False  ;
      end;
    -------------
      PROCEDURE DEBUG_TOGGLE is
      begin
        debug_flag := xor(debug_flag,true) ;
      end;
    -----
      FUNCTION DEBUG_STATUS RETURN BOOLEAN is
      begin
        return(debug_flag) ;
      end ;
      
    end;
    HQ.Wang 海清
      

  2.   

    FUNCTION CHAR_TO_NUMBER(PSTR in VARCHAR2 , PFormat in varchar2 default null)
      RETURN NUMBER is
        LNUMBER NUMBER;
      BEGIN
        if pformat is null then   --is null <> = null
          return(TO_NUMBER(PSTR));
        else
          return (TO_NUMBER(PSTR, PFormat)) ;
        end if ;
        EXCEPTION
          WHEN OTHERS THEN
            return(null) ;
      END CHAR_TO_NUMBER;