日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 用函数返回对象集合

發布時間:2025/3/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 用函数返回对象集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

總結

以上是生活随笔為你收集整理的oracle 用函数返回对象集合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。