Oracle 和 SQL Server完全不一样掉了.请教一下,如何创建存储过程.我有一张表,表里有三个字段.表名:rankinfo
字段:ranid
     ranname
     ranclass表中有一条ranid为1的记录请问:
1,如何写一个查询ranid=1的存储过程?
2,如何写一个向rankinfo表中插入记录的存储过程?
3,如何写一个删除rankinfo表中ranid=1记录的存储过程?

解决方案 »

  1.   

    create or replace procedure pr_test is
    v_name rankinfo.ranname%type;
    v_class  rankinfo.ranclass%type;
    begin
    select ranid,ranname into v_name,v_class from rankinfo where ranid=1;
    dbms_output.put_line(v_name||v_class);
    end;
    create or replace procedure pr_test(vid    rankinfo.ranid%type,
                                        vname  rankinfo.ranname%type,
                                        vclass rankinfo.ranclass%type) is
    begin
      select ranid, ranname into v_name, v_class from rankinfo where ranid = 1;
      dbms_output.put_line(v_name || v_class);
    end;
    create or replace procedure pr_test() is
    begin
      delete from rankinfo where ranid = 1;end;
      

  2.   

    第二个粘错了
    create or replace procedure pr_test(vid    rankinfo.ranid%type,
                                        vname  rankinfo.ranname%type,
                                        vclass rankinfo.ranclass%type) is
    begin
      insert into rankinfo values(vid,vname,vclass)
    end;
      

  3.   

    create or replace procedure pr_test is
    v_name rankinfo.ranname%type;
    v_class  rankinfo.ranclass%type;
    begin
    select ranid,ranname into v_name,v_class from rankinfo where ranid=1;
    dbms_output.put_line(v_name||v_class);
    end;
    我把这个代码复制到客户端执行,提示:ORA-00901: 无效 CREATE 命令请问,是什么原因啊?
      

  4.   

    补充:procedure NRMSMAIN."pr_test"   is
    v_name rankinfo.ranname%type;
    v_class  rankinfo.ranclass%type;
    begin
    select ranid,ranname into v_name,v_class from rankinfo where ranid=1;
    dbms_output.put_line(v_name||v_class);
    end;我把 create or 去掉,可以建.但Execute就出错
    ORA-18008: 无法找到 OUTLN 方案
    ORA-06512: 在"NRMSMAIN.pr_test", line 5
    ORA-06512: 在line 2
      

  5.   

     改为select   ranname,ranclass into v_name,v_class from rankinfo where ranid=1;
      

  6.   

    SQL> create or replace procedure pr_test is
      2  v_id rankinfo.ranid%type;
      3  v_name rankinfo.ranname%type;
      4  v_class rankinfo.ranclass%type;
      5  begin
      6  select ranid into v_id,ranname into v_name,ranclass into v_class from rankinfo where ranid = 1;  7  dbms_output.put_line(v_id||v_name||v_class);
      8  /警告: 创建的过程带有编译错误。SQL> 
      

  7.   

    你输入show errors看什么错误。还有你的表结构发下。不会是字段有问题吧。
      

  8.   

    procedure NRMSMAIN.PR_TEST   is
    v_id rankinfo.ranid%type;
    v_name rankinfo.ranname%type;
    v_class rankinfo.ranclass%type;
    begin
    select ranid,ranname,ranclass into v_id,v_name,v_class from rankinfo where ranid = 1;dbms_output.put_line(v_id||v_name||v_class);
    end;ORA-18008: 无法找到 OUTLN 方案
    ORA-06512: 在"NRMSMAIN.PR_TEST", line 6
    ORA-06512: 在line 2
      

  9.   

    表结构:  RANID NUMBER(4,0) NOT NULL,
      RANNAME VARCHAR2(50) NOT NULL,
      RANCLASS NUMBER(4,0) DEFAULT 0  NOT NULL
      

  10.   

    NRMSMAIN.PR_TEST
    你加nrmsmain做什么呢?
    你试试执行另外两个吧。插入的跟删除的。create or replace应该需要加的阿
      

  11.   

    Query OK (31 ms)真郁闷啊,
    原来是因为我把其它用户删了.安装好,有好多被锁定的用户.
    原来这些用户不能删啊...感谢两位热心帮助...