我创建了一个存储过程,提示没说成功,也没说失败,就是提示完成了,但是显示的图标上有个小红叉,而且不能使用,我该怎么办?

解决方案 »

  1.   

    下面是我创建的存储过程
    create or replace procedure IsSuccess
    as
    strUser varchar(20);
    strNum varchar(20);
    strSql varchar(500);
    begin
    if sql%rowcount=0 then
    dbms_output.put_line('用户'||strUser||'的资产号'||strNum||'更新失败!更新语句被退回,如下:');
    dbms_output.put_line(strSql);
    end if
    end;
      

  2.   

    楼上的这位大哥说的正解。我的问题解决了,但是我又有个问题,就是我如何在PL/SQL的SQL窗口中调用存储过程呢?
    我使用如下代码却未成功!
    begin
    exec issuccess(...,...,...);
    end;
    问题出在哪里呢?
      

  3.   

    CALL issuccess(...,...,...); 
      

  4.   

    create or replace procedure IsSuccess
    as
    strUser varchar(20);
    strNum varchar(20);
    strSql varchar(500);
    begin
    if sql%rowcount=0 then
    dbms_output.put_line('用户'||strUser||'的资产号'||strNum||'更新失败!更新语句被退回,如下:');
    dbms_output.put_line(strSql);
    end if;
    end;我使用如下语句时失败:
    update meter_location t set t.customer_no='132' where t.customer_no='12412';
    call issuccess('123','123','update meter_location');
    提示:调用issuccess时参数个数或类型错误!
    那该如何传参啊?
      

  5.   


    create or replace procedure IsSuccess 
    (
      parameter1 varchar2(10) in,
      parameter2 varchar2(10) out
    )

    as begin 
     dbms_output.put_line(parameter1);
    end;
    你写函数的时候, 根本就没有写参数。 
    怎么传参???
      

  6.   

    哎!我写了啊!
    create or replace procedure IsSuccess 
    as 
    strUser varchar(20); 
    strNum varchar(20); 
    strSql varchar(500);
     
    begin 
    if sql%rowcount=0 then 
    dbms_output.put_line('用户'||strUser||'的资产号'||strNum||'更新失败!更新语句被退回,如下:'); 
    dbms_output.put_line(strSql); 
    end if; 
    end; 
    标注红色的地方!
      

  7.   

    既然是plsql,就可以用plsql新建,参数怎么写都有模板测试可以直接右键选择“测试”
      

  8.   

    这段代码有什么错误吗?
    create or replace procedure upsal(theno emp.empno%type ,per number)
    is
         cursor cur(theempno emp.empno%type) is select * from empbak1 where empno=theempno for update;
         myrow prow emp%rowtype;
    begin
         open cur (theno);
         fetch cur into   myrow ;
         update empbak1 set sal=sal*(1+per) where current of cur;
         dbms_output.put_line('数据修改完成');
         close cur;
    end upsal;