首页 > 代码库 > 存储过程使用动态游标一例
存储过程使用动态游标一例
数据表结构如下;
SQL> desc record;
Name Type Nullable Default Comments
----------- ------------ -------- ------- --------
RECORD_GUID VARCHAR2(50) Y
DNIS VARCHAR2(15) Y
ANI VARCHAR2(15) Y
STARTTIME DATE Y
ENDTIME DATE Y
STAFFID VARCHAR2(10) Y
AGENTID VARCHAR2(10) Y
EXTENSION VARCHAR2(20) Y
尝试显示指定电话和某年月份的电话记录,采用存储过程实现
create or replace procedure proc_getrecord(i_dnis in varchar2, i_time in varchar2) /* 功能:查找某月电话记录 参数说明:i_dnis为主叫号码,i_time为某年月份(例如201401) 编写日期:2014.06.26 */ as sqlstr varchar2(5000); begin declare type rc is ref cursor; c_rc rc; r_record record%rowtype; begin sqlstr:=‘select * from king.record where dnis =:1’|| ‘ and replace(substr(starttime, 1, 7), ‘‘-‘‘, ‘‘‘‘)=:2‘; open c_rc for sqlstr using i_dnis,i_time; fetch c_rc into r_record; while c_rc%found loop dbms_output.put_line( ‘开始时间:‘||r_record.starttime||‘ ‘|| ‘结束时间:‘||r_record.endtime||‘ ‘|| ‘主叫号码:‘||r_record.dnis||‘ ‘|| ‘被叫号码:‘||r_record.ani); fetch c_rc into r_record; end loop; close c_rc; end; end;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。