Create or replace procedure sp_prople(XM_out out varchar2,sfzh_out out varchar2) as begin select XM,sfzh into XM_out,sfzh_out from person where sfzh = '441422198504062319';end;
刚开始接触存储过程 以上是我仿写的一个存储过程 我现在想去掉 select 中 where 那一部分条件 也就是说遍历表中所有的XM和sfzh,请问这个存储过程该怎么写 求教了

解决方案 »

  1.   

    那就直接把where 及后面的去掉呗,这样的话,就可能出现迪卡儿积了。
      

  2.   

    Create or replace procedure sp_prople(XM_out out varchar2,sfzh_out out varchar2) 
    as 
    begin 
       select XM,sfzh into XM_out,sfzh_out from person 
    end
    分号可以去掉
      

  3.   


    Create  procedure sp_prople@XM_out  varchar output,
    @sfzh_out  varchar output
    as 
    begin 
       set @XM_out=(select XM from person )
        set @sfzh_out=(select sfzh from person )
    end
    上面的没仔细看,这个可以通过编译了
      

  4.   

    Create  procedure sp_prople@XM_out  varchar output,
    @sfzh_out  varchar output
    as 
    begin 
       set @XM_out=(select XM from person )
        set @sfzh_out=(select sfzh from person )
    end
      

  5.   

    不行啊哥们正在运行 "STSC"."SP_PROPLE".ORA-06550: 第 1 行, 第 14 列: 
    PLS-00905: 对象 STSC.SP_PROPLE 无效
    ORA-06550: 第 1 行, 第 7 列: 
    PL/SQL: Statement ignored我看网上说要用 loop 什么的 但仿写了几个都还是不行