如何在ORACLE 10G中创建带两个参数的存储过程并返回查询数据表
想实现传入起始日期和终止日期两个参数,然后将在这一时间段内的数据查询结果以数据表形式返回。想通过创建Oracle存储过程来实现,如何操作?以前在SQL SERVER中创建过,但是不知道在ORACLE中如何建立。谢谢了
------解决方案--------------------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。
------解决方案--------------------
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
------解决方案--------------------两个参数是不能实现你的要求的,因为存储过程没有返回值,可以在参数里面加一个out参数(该参数的数据类型是表类型)
------解决方案--------------------exec procedure procedure_name(param1,param2...)
存储过程中参数分in,out,inout三种,你可以找本书或者网上直接搜一下,看看就明白了