我在oracle 9i写下这样的存储过程,可以成功创建但在该存储过程左上角有个红色的X,提示无法使用,怎么回事啊? 
权限不够?错在哪??create or replace procedure aa_proc(p1 in varchar2,p2 in varchar2) 
begin
update menu set menuname=pl  where menuid=p2;
end aa_proc;

解决方案 »

  1.   

    那是没有compile通过,你在工具里选上procedure后recompile。或者命令
    SQL>alter procudure aa_proc compile;看看哪里出现编译错误。
    ==================================================================
    Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理如果你需要帮助或想和我一起学习的请联系
    联系方式QQ:370140387
    QQ群:  85837884(注明:数据库)
    电子邮件:[email protected]
    网站: http://www.inthirties.com
      

  2.   

    是不是有错误,recompile一下试试看
      

  3.   

    create or replace procedure aa_proc(p1 in varchar2,p2 in varchar2) is
    begin 
    update menu set menuname=pl  where menuid=p2; 
    end aa_proc; 
      

  4.   


    加is或as都一样出错
    我是在PLSQL Developer里写的,根据2楼所说执行alter procudure aa_proc compile; 
    也一样没什么反应啊,晕死
      

  5.   

    create or replace procedure aa_proc(p1 in varchar2,p2 in varchar2) is 
    begin 
    update menu set menuname=pl(p1 )  where menuid=p2; 
    end aa_proc; 
      

  6.   

    Note that when an invalid PL/SQL subprogram is detected by Oracle SQL Developer, the status is indicated with a red X over the icon for the subprogram in the Connections Navigator.Compilation errors are shown in the log window. You can navigate to the line reported in the error by simply double-clicking on the error. Oracle SQL Developer also displays errors and hints in the right hand gutter. If you hover over each of the red bars in the gutter, the error message displays
      

  7.   


    总会有compile成功失败的信息提示吧。在command window里运行。