oracle里面的存储过程格式为:
CREATE OR REPLACE PROCEDURE 存储过程名字 (参数1 IN NUMBER,     
参数2 IN NUMBER ) 
IS 
变量1 INTEGER :=0; 
变量2 DATE; 
BEGIN 
END 存储过程名字;注意在oracle存储过程中如果使用了select 在字段后面要加上into来进行承接,否则会报错,例如:
select sysdate into 变量2 from dual。

解决方案 »

  1.   


    CREATE OR REPLACE PROCEDURE pro_query_for_timezone (p_begin in varchar2,p_end in varchar2,p_rs out sys_refcursor )  as
      v_sqlstr varchar2(4000);
    BEGIN 
         v_sqlstr := 'select * from 表 where 时间字段 between :p and :p ';
         open p_rs for v_sqlstr using p_begin,p_end;
        
    END;如果是字段是日期类型自己改成date
      

  2.   

    两个参数是不能实现你的要求的,因为存储过程没有返回值,可以在参数里面加一个out参数(该参数的数据类型是表类型)
      

  3.   

    按照3楼方法,语句可以了,但是不知道怎么调用啊。用EXEC加参数,通不过
      

  4.   

    exec procedure procedure_name(param1,param2...)
    存储过程中参数分in,out,inout三种,你可以找本书或者网上直接搜一下,看看就明白了
      

  5.   

    SQL>var  p_rs varchar2(2000);
    SQL>exec(  'in1','in2',:p_rs);
    这样就可以了