为什么就是不能执行啊
create or replace function funct(
maxnumber number,
minnumber number
)
return varchar2 isv_result varchar2(50);
v_count  number(5);begin
select count(1) into v_count from abc;if v_count>maxnumber then
v_result:='the number is big';elsif  v_count<minnumber then
v_result:='is small';else
v_result:='normal';end if;
return v_result;end funct;declare
maxnumber number:=1000;
minnumber number:=12;
d_result varchar2(50);
begin
d_result:=funct(maxnumber,minnumber);
dbms_output.put_line(d_result);end;
/

解决方案 »

  1.   

    select count(1) into v_count from abc; ----表abc有么?
      

  2.   

    select funct(1000,12) from dual;
      

  3.   

    建议使用pl/sql developer工具先行调试,然后再进行SQL语句实际调用。另外:你说的执行是指像存储过程那样执行吗?function只是返回一个值,一般是查询语句或者pl/sql块中赋值时使用。
      

  4.   

    set serveroutput on了没有?SQL> set serveroutput on
    SQL> create or replace function funct(
      2  maxnumber number,
      3  minnumber number
      4  )
      5  return varchar2 is
      6  v_result varchar2(50);
      7  v_count  number(5);
      8  
      9  begin
     10  select count(1) into v_count from emp;
     11  
     12  if v_count>maxnumber then
     13  v_result:='the number is big';
     14  
     15  elsif  v_count<minnumber then
     16  v_result:='is small';
     17  
     18  else
     19  v_result:='normal';
     20  
     21  end if;
     22  return v_result;
     23  
     24  end funct;
     25  /函数已创建。SQL> declare
      2  maxnumber number:=1000;
      3  minnumber number:=12;
      4  d_result varchar2(50);
      5  begin
      6  d_result:=funct(maxnumber,minnumber);
      7  dbms_output.put_line(d_result);
      8  
      9  end;
     10  /
    normalPL/SQL 过程已成功完成。
      

  5.   

    函数已创建。
    我这里提示错误:
    警告,Although the function was created, there is a compile error
      

  6.   

    哦,可以拉,哈哈,原来创建涵数和调用涵数要写在两个*.sql文件里,我把他们写在一起就不行