rid是什么类型,要说清楚
declare 
rt dtrole%rowtype;
begin
过程名(1000,rt);
end;
/

解决方案 »

  1.   

    declare rt dtrole%rowtype;
    begin
     过程名 (1000,rt);
    end;
    /中rt的值为空,也会导致存储过程执行失败,因为
    select * into rtab from dtrole where roleid = rid;当无记录符合条件时,也时会出错的。
      

  2.   

    说明rt的类型,最好加上exeption 段。
      

  3.   

    declare rt dtrole%rowtype;
    begin
    execute 过程名 (1000,rt);
    end;
    参数rid有问题