参数定义里的这行,结尾多了个逗号;
另外,你这个存储过程里,对表也没做任何数据操作啊,不用commit

解决方案 »

  1.   

    你的procedure编译没过吧, 再说 执行的时候SQL应该是exec proc_clrwl_ds1('') 多了个 proc 
      

  2.   

    参数里多了个逗号,if else语句中有必要加begin,end吗,查询语句不涉及事物操作,是不用commit的
      

  3.   

    而且你的代码中select dpt_name into adpt_name from usr_dpt;
    这一句没有条件,取出来的值可能会有多条!
    另外t:=40;
      if (t<=120) then  ...
    这句代码已经明确了t的值是40 ,应该是走不到else判断吧!
      

  4.   

    CREATE OR REPLACE PROCEDURE proc_clrwl_ds1
    (
      unit in nvarchar2,
    )
     
    这里面多了个逗号,如果多个参数,用逗号
      

  5.   

    此存储过程太多毛病了,除了楼上所说的以外,select dpt_name into adpt_name from usr_dpt;这条语句都有可能报异常,如果查询不到的话就是空值,空值怎么赋值给adpt_name变量呢?要加个异常判断
    EXCEPTION 
       WHEN OTHERS THEN
          .....
      

  6.   

    编译通过了,还是报错,和原来的错误一模一样CREATE OR REPLACE PROCEDURE proc_clrwl_ds1
    (
      unit in varchar2
    )
    is
       t number;
       adpt_name varchar2(50);
    begin
        t:=40;
        if (t<=120) then
               select dpt_name into adpt_name from usr_dpt where rownum=1 order by dpt_id asc;
        else
               select dpt_name into adpt_name from usr_dpt where dpt_name=unit;
        end if;
    end;
    哪位能帮我再指正一下?
      

  7.   

    试试这句: exec proc_clrwl_ds1('');
      

  8.   

    如果存储过程是成功的可以用call 过程名称();
    或者
    declare
       变量
      begin
        过程名称();   
      end;
    例子
    declare
       i number;
      begin
        i:=10;
        mypro4(i);
      end;