CREATE OR REPLACE FUNCTION findMax(a NUMBER,b NUMBER,c NUMBER) RETURN NUMBER
IS 
tempMax NUMBER; -- 存放最大值
BEGIN
   IF a>b THEN
      IF c>a THEN
         dbms_output.put_line(c);
         RETURN tempMax;
      ELSE
         dbms_output.put_line(a);
         RETURN tempMax;
      END IF;      ELSE
           IF b>c THEN
              dbms_output.put_line(b);
              RETURN tempMax;
           ELSE
              dbms_output.put_line(c);
              RETURN tempMax;
      END IF;
    END IF;
    RETURN tempMax;
END findMax;
DECLARE
a NUMBER := 10;
b NUMBER := 20;
c NUMBER := 30;
BEGIN
findMax(a,b,c);
END;为什么出不来结果呢,求大神帮助。。PL/SQL

解决方案 »

  1.   

    你只是把数字打印出来了,但是并没有给 tempMax赋值,最后返回出来的 tempMax 还是个空。CREATE OR REPLACE FUNCTION findMax(a NUMBER,b NUMBER,c NUMBER) RETURN NUMBER
     IS
     tempMax NUMBER; -- 存放最大值
     BEGIN
        IF a>b THEN
           IF c>a THEN
              tempMax:=c;
           ELSE
              tempMax:=a;
           END IF;      ELSE
                IF b>c THEN
                   tempMax:=b;
                ELSE
                   tempMax:=c;
           END IF;
         END IF;
         RETURN tempMax;
     END findMax;这样就行了
      

  2.   

    你看看这个错误,就是说后边的表达式上边提示说
    第六行的第二列findMax不是过程或者未定义
      

  3.   

    还是不行,你看看这个错误,就是说后边的表达式上边提示说
    第六行的第二列findMax不是过程或者未定义