create or replace function test1(a in number(2)) return boolean
is
 b number(2):=33;
begin
 if a=b then   
    return true;
 else
    return false;
end if;
end;
如何解决?

解决方案 »

  1.   

    --返回为NUMBER类型不就行了。是TRUE就是1,FALSE就是0.
    SQL> SELECT * FROM TEST_NUM;      NUM1       NUM2        QTY
    ---------- ---------- ----------
             1          1          1
             1          2          1
             1          3          1
             2          4          1
             2          5          1
             2          6          1
             3          7          1
             3          8          1
             4          9          1
             4         10          1
             5          1          212 rows selectedSQL> CREATE OR REPLACE FUNCTION TEST1_11(A IN NUMBER) RETURN NUMBER IS
      2    B NUMBER(2) := 33;
      3  BEGIN
      4    IF A = B THEN
      5      RETURN 1;
      6    ELSE
      7      RETURN 0;
      8    END IF;
      9  END;
     10  /Function createdSQL> SELECT NUM1, TEST1_11(NUM1) FROM TEST_NUM;      NUM1 TEST1_11(NUM1)
    ---------- --------------
                            0
             1              0
             1              0
             1              0
             2              0
             2              0
             2              0
             3              0
             3              0
             4              0
             4              0
             5              012 rows selected
      

  2.   

    create or replace function test1(a in number) return boolean
    is
    b number(2):=33;
    begin
    if a=b then 
        return true;
    else
        return false;
    end if;
    end; 
      

  3.   

    create or replace function test1(a in number) return boolean
    is
    b number(2):=33;
    begin
    if a=b then 
        return true;
    else
        return false;
    end if;
    end; 
    SQL> declare
      2  a boolean;
      3  begin
      4  a:= test1(33);
      5  if a then
      6  dbms_output.put_line(123);
      7  end if;
      8  end;
      9  /123PL/SQL procedure successfully completed