博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle 用函数返回对象集合
阅读量:6439 次
发布时间:2019-06-23

本文共 1444 字,大约阅读时间需要 4 分钟。

1、先要声明全局type;并且,字段变量类型要为object,不能为record:

(1)CREATE OR REPLACE TYPE "DDD_BY_DEPT_STATISTISC" is object (      --建立一个对象

DEPT_CODE VARCHAR2(200),
DEPT_NAME VARCHAR2(200),
SYQD NUMBER,
ZKZTS NUMBER
)

(2)CREATE OR REPLACE TYPE "DDD_BY_DEPT_STATISTISC_TB"  is table of DDD_BY_DEPT_STATISTISC--包含对象的table

2、建立一个带返回值的函数

create or replace function fn_get_antib_statistisc(BILLING_DATE_MIN IN varchar2, BILLING_DATE_MAX IN varchar2,TIME_TYPE IN VARCHAR2)--TIME_TYPE 发生=1结算=2

return TP_ANTIBIOTIC_STATISTISC_TB
is
o_tb TP_ANTIBIOTIC_STATISTISC_TB := TP_ANTIBIOTIC_STATISTISC_TB();
i number := 0;
TIME_TYPES VARCHAR2(20):=TIME_TYPE;

cursor cur is--建立游标,先把要返回的内容放在游标里

select patient_id,
pat_name,
doctor,
drdered_by,
dept_name,
visit_id,
sum(costs) costs,
rcpt_no,
statistisc_bz from antibiotic_statistisc
OPERATION_STATISTICS where date_time>=to_date(BILLING_DATE_MIN,'yyyy-mm-dd')
and date_time<to_date(BILLING_DATE_MAX,'yyyy-mm-dd')+1 and STATISTISC_BZ=TIME_TYPES group by patient_id,
pat_name,
doctor,
drdered_by,
dept_name,
visit_id,
rcpt_no,
statistisc_bz;
begin

for Temp in cur loop--循环将游标里的对象赋值到装对象的集合中
o_tb.extend;-------A
i := i + 1;----------B       每次向o_tb添加对象时都要进行AB操作
o_tb(i) := TP_ANTIBIOTIC_STATISTISC (

Temp.patient_id,

Temp.pat_name,
Temp.doctor,
Temp.drdered_by,
Temp.dept_name,
Temp.visit_id,
Temp.costs,
Temp.rcpt_no,
'',
Temp.statistisc_bz
);

end loop;
return o_tb;
end fn_get_antib_statistisc;

转载于:https://www.cnblogs.com/hjianguo/p/6041565.html

你可能感兴趣的文章
redis-布隆过滤器
查看>>
Object.hashCode()方法与System.identityHashCode(object)的区别
查看>>
vue的todolist -- 增删改查
查看>>
Go圣经-学习笔记入门
查看>>
微软工程师:构建强大的实时流式应用选择Apache Calcite
查看>>
混合云场景下容器技术在新能源功率预测产品中的最佳实践
查看>>
/etc/security/limits.conf的相关说明
查看>>
在docker中使用mysql数据库,在局域网访问
查看>>
10个最佳Node.js企业应用案例:从Uber到LinkedIn
查看>>
XML的解析方式
查看>>
HTTP各版本比较
查看>>
StringUtils.isEmpty和StringUtils.isBlank用法
查看>>
JSON学习
查看>>
echo和Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
查看>>
VC++设置远程调试
查看>>
11-1 11 LAMP复习 安装
查看>>
Android调用JS,带传参到JS需要注意的点
查看>>
SpringMVC--纯净版框架整合配置
查看>>
深入解析php中的foreach问题
查看>>
踩坑之路之DNS域名解析
查看>>