Oracle存储过程,以游标的方式返回一个记录集
来源:互联网 发布:明亡之后无华夏 知乎 编辑:程序博客网 时间:2024/06/05 06:14
--创建一个包
create or replace package types
as
type cursorType is ref cursor;
end types;
create or replace package types
as
type cursorType is ref cursor;
end types;
--创建存储过程,游标类型返回参数
create or replace procedure SP_Fee_Instance(v_company in varchar, v_sdate in nvarchar2, v_edate in nvarchar2,p_cursor in out types.cursorType) is
-- vs_sql varchar2(2000);
--company varchar2(100); --公司编码
--start_date varchar2(10); --计划付款时间段[起]
--end_date varchar2(10); --计划付款时间段[止]
begin
IF NVL(v_company,' ') <> ' ' THEN
OPEN p_cursor FOR
select a.company,a.pact_name,a.pact_code,i.payment_date,sum(i.payment_fee) as payment_fee,i.payment_condition,i.payment_remark
from htgl_pact_apply a
inner join htgl_fee_instance i on a.apply_id = i.apply_id
where a.payment_status=2
and a.company = v_company
and i.payment_date between to_date(v_sdate,'YYYY-MM-DD') and to_date(v_edate,'YYYY-MM-DD')
group by a.company,a.pact_name,a.pact_code,i.payment_date,i.payment_condition,i.payment_remark;
null;
-- dbms_output.put_line(company);
-- dbms_output.put_line(start_date);
ELSE
OPEN p_cursor FOR
select a.company,a.pact_name,a.pact_code,i.payment_date,sum(i.payment_fee) as payment_fee,i.payment_condition,i.payment_remark
from htgl_pact_apply a
inner join htgl_fee_instance i on a.apply_id = i.apply_id
where a.payment_status=2
and i.payment_date between to_date(v_sdate,'YYYY-MM-DD') and to_date(v_edate,'YYYY-MM-DD')
group by a.company,a.pact_name,a.pact_code,i.payment_date,i.payment_condition,i.payment_remark;
null;
END IF;
-- EXECUTE IMMEDIATE vs_sql;
-- EXECUTE IMMEDIATE vs_sql into i;
end SP_Fee_Instance;
--下面是调用方法
--execute SP_Fee_Instance('ass','','')
create or replace procedure SP_Fee_Instance(v_company in varchar, v_sdate in nvarchar2, v_edate in nvarchar2,p_cursor in out types.cursorType) is
-- vs_sql varchar2(2000);
--company varchar2(100); --公司编码
--start_date varchar2(10); --计划付款时间段[起]
--end_date varchar2(10); --计划付款时间段[止]
begin
IF NVL(v_company,' ') <> ' ' THEN
OPEN p_cursor FOR
select a.company,a.pact_name,a.pact_code,i.payment_date,sum(i.payment_fee) as payment_fee,i.payment_condition,i.payment_remark
from htgl_pact_apply a
inner join htgl_fee_instance i on a.apply_id = i.apply_id
where a.payment_status=2
and a.company = v_company
and i.payment_date between to_date(v_sdate,'YYYY-MM-DD') and to_date(v_edate,'YYYY-MM-DD')
group by a.company,a.pact_name,a.pact_code,i.payment_date,i.payment_condition,i.payment_remark;
null;
-- dbms_output.put_line(company);
-- dbms_output.put_line(start_date);
ELSE
OPEN p_cursor FOR
select a.company,a.pact_name,a.pact_code,i.payment_date,sum(i.payment_fee) as payment_fee,i.payment_condition,i.payment_remark
from htgl_pact_apply a
inner join htgl_fee_instance i on a.apply_id = i.apply_id
where a.payment_status=2
and i.payment_date between to_date(v_sdate,'YYYY-MM-DD') and to_date(v_edate,'YYYY-MM-DD')
group by a.company,a.pact_name,a.pact_code,i.payment_date,i.payment_condition,i.payment_remark;
null;
END IF;
-- EXECUTE IMMEDIATE vs_sql;
-- EXECUTE IMMEDIATE vs_sql into i;
end SP_Fee_Instance;
--下面是调用方法
--execute SP_Fee_Instance('ass','','')
注意:
参数变量名称与数据表中字段名称不能同名
参数变量名称与数据表中字段名称不能同名
- Oracle存储过程,以游标的方式返回一个记录集
- oracle使用游标让存储过程返回记录集
- oracle的存储过程返回记录集
- 用SQLPLUS调试返回游标集的Oracle存储过程
- 通过游标读取oracle存储过程返回的结果集
- oracle 在一个存储过程中调用另一个返回游标的存储过程
- oracle 在一个存储过程中调用另一个返回游标的存储过程
- oracle 在一个存储过程中调用另一个返回游标的存储过程
- Oracle存储过程返回游标
- oracle 存储过程返回游标
- hibernate里使用jdbc方式调用oracle带游标返回参数的简单分页存储过程
- oracle利用游标实现返回一个表形式数据集合的函数及存储过程
- vb调用oracle数据库返回游标的存储过程
- 使用DataReader操作从Oracle存储过程返回的游标
- jdbc中调用oracle 返回游标类型的存储过程
- jdbc中调用oracle 返回游标类型的存储过程
- VBA调用带游标返回值的ORACLE存储过程
- C#执行oracle返回游标类型的存储过程
- 研究生如何做好科研和发表文章
- Makefile详解(超级好)
- linux 系统调用
- linux 上电执行的第一条代码是在内存里吗?
- A research line from cloud computing to hypergraph
- Oracle存储过程,以游标的方式返回一个记录集
- tftp 命令格式
- hibernate配置文件映射元素详解
- 解析spring schedule
- 日本产业研究--读后感三 能源
- delphi调用C#写的web服务例子
- silverlight3 开发包安装顺序
- VC2008 Windows Media Player控件的使用技巧
- 睿智男人的24条生存法则