SQL> create or replace procedure p_update_gzb (p_id in number,p_sz in bumber) is
  2  begin
  3  update gzb set gz=p_gz where id=p_id;
  4  commit;
  5  end;
  6  /警告: 创建的过程带有编译错误。

解决方案 »

  1.   

    哇,LZ,好像笔误的地方还不少呢参数p_sz在使用的时候怎么又成了p_gz ??
      

  2.   


    SQL> CREATE TABLE GZB(
      2  ID NUMBER PRIMARY KEY,
      3  CNAME VARCHAR2(30),
      4  GZ NUMBER(5)
      5  );Table created.SQL> INSERT INTO GZB SELECT 1,'GRANT',5000 FROM DUAL;1 row created.SQL> SELECT * FROM GZB;        ID CNAME                                  GZ
    ---------- ------------------------------ ----------
             1 GRANT                                5000SQL> CREATE OR REPLACE PROCEDURE P_UPDATE_GZB(P_ID IN NUMBER,P_SZ IN NUMBER) IS
      2  BEGIN
      3    UPDATE GZB SET GZ=P_SZ WHERE ID=P_ID;
      4    COMMIT;
      5  END;
      6  /--------
    1: p_sz in bumber
    搂住笔误不少
      

  3.   

    哎 小小程序竟然出现这么多错误 惭愧啊
    -----------SQL> create or replace procedure p_update_gzb (p_id in number,p_gz in number) as
      2  begin
      3  update gzb set gz=p_gz where gzb.id=p_id;
      4  commit;
      5  end;
      6  /过程已创建。
    ------------------
    为什么我在SQL*Plus worksheet  中 输入 
    create or replace procedure p_update_gzb (p_id in number,p_gz in number) as
    begin
    update gzb set gz=p_gz where gzb.id=p_id;
    commit;
    end;
    执行后不行 
    ------------------------------
    我现在想在问下 ,存储过程和函数是不是都可以带参数 并有结果返回值  返回值 类型有没有限制
    刚刚接触 oracle 连个过程 也写不了 谁提供一个 带参数和返回值的存储过程和函数给我参照下 
    谢谢
      

  4.   

    既然那么多人说了。我觉得问题不是重要的。你先还得使用合适的工具,例如Pl/sql developer,或者oracle自己de sql developer(完全免费).
      有了这些,一切问题都很简单的,下载一个关于pl/sql的学习资料。O'Reilly Oracle PL/SQL Programming这个不错。
      

  5.   

    出现了“警告: 创建的过程带有编译错误。”的提示后,执行SQL> SHOW ERRORS这样会看到错误的提示。
      

  6.   

    呵呵。不熟练先使用PL/sql 或者TOAD作为第3方工具操作!很方便的!