create or replace procedure kele8(para1 in number)
as
begin
if para1=0 then
dbms_output.put_line('更新失败!更新语句被退回');
end if;
end;declare 
msql number;
update student t set t.name='王海' where t.id='20040712';
msql:=sql%rowcount;
call kele8(msql);

解决方案 »

  1.   

    declare 
    msql number; 
    update student t set t.name='王海' where t.id='20040712'; 
    msql:=sql%rowcount; 
    call kele8(msql); PLSQL块没有BEGIN END 的啊
      

  2.   

    create or replace procedure kele8(para1 in number) 
    as 
    msql number :=1; 
    begin 
    if para1==0 then 
    dbms_output.put_line('更新失败!更新语句被退回'); 
    end if; 
    update student t set t.name='王海' where t.id='20040712'; 
    msql:=sql%rowcount; 
    call kele8(msql); 
    end; 
      

  3.   

    我现在又有个问题,就是定义了一个存储过程如下:
    create or replace procedure mypro(para in varchar2)
    as
    begin
    --执行para    参数para是一个sql语句,我该如何在存储过程内部执行呢?   exec para 失败!
    end;
      

  4.   

    create or replace procedure mypro(para in varchar2) 
    as 
    begin 
    dbms_output.put_line('para:'||para);
    EXECUTE IMMEDIATE (para);
    EXECUTE IMMEDIATE ('COMMIT');
    end; 
      

  5.   

    如果不成功的话,
    --EXECUTE IMMEDIATE (para);
    改为:
    EXECUTE IMMEDIATE ('''||para||''');