如何在ORACLE 10G中创建带两个参数的存储过程并返回查询数据表

Tranlynn 2013-01-29 11:36:42
想实现传入起始日期和终止日期两个参数,然后将在这一时间段内的数据查询结果以数据表形式返回。想通过创建Oracle存储过程来实现,如何操作?以前在SQL SERVER中创建过,但是不知道在ORACLE中如何建立。谢谢了
...全文
309 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小蜗牛_xxx 2014-04-11
  • 打赏
  • 举报
回复
SQL>var p_rs varchar2(2000); SQL>exec( 'in1','in2',:p_rs); 这样就可以了
睿智天成 2013-01-30
  • 打赏
  • 举报
回复
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。
ajune 2013-01-30
  • 打赏
  • 举报
回复
exec procedure procedure_name(param1,param2...) 存储过程中参数分in,out,inout三种,你可以找本书或者网上直接搜一下,看看就明白了
Tranlynn 2013-01-30
  • 打赏
  • 举报
回复
按照3楼方法,语句可以了,但是不知道怎么调用啊。用EXEC加参数,通不过
ora-0600 2013-01-30
  • 打赏
  • 举报
回复
两个参数是不能实现你的要求的,因为存储过程没有返回值,可以在参数里面加一个out参数(该参数的数据类型是表类型)
forgetsam 2013-01-30
  • 打赏
  • 举报
回复

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
Tranlynn 2013-01-30
  • 打赏
  • 举报
回复
对这个语句不熟悉,能否给详细点语句?谢谢

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧