原來我用的是sqlserver資料庫,要是做報表的話一般的資料都在sql的存盤程序算完然后select * from 表反回給pb的資料視窗,但現在用oracle了,我這么寫回傳值oracle的存盤程序語法都不通過啊! 下面的是sql的,在存盤程序中可以直接回傳一個資料集,pb用這個存盤程序做資料源就可以形成一個報表! 誰能給我講講在oracle中怎么實作存盤程序回傳資料集!
CREATE PROCEDURE cw_ywhzb @ldt_sdate datetime,
@ldt_edate datetime,
@ls_lx varchar(1)
AS
BEGIN
--------------------分類匯總部分------------------
if @ls_lx='1'
begin
SELECT (select fymc from jc_fylbzd where fybh = jc_fyzd.lsfybh) as fymc,
sum(zje) as je
FROM jc_fylbzd,
jc_fyzd,
mz_fpdj,
mz_cfmx
WHERE (mz_fpdj.fph = mz_cfmx.fph) and
(jc_fylbzd.fybh = mz_cfmx.fygl) and
(jc_fylbzd.fybh = jc_fyzd.fybh) and
((jc_fyzd.lbbh = '1') and
(sfsj >= @ldt_sdate and
sfsj <= @ldt_edate))
GROUP BY jc_fyzd.lsfybh
return
end
if @ls_lx='2'
begin
SELECT (select fymc from jc_fylbzd where fybh = jc_fyzd.lsfybh) as fymc,
sum(zje) as je
FROM jc_fylbzd,
jc_fyzd,
zy_cfdj,
zy_cfmx
WHERE (zy_cfdj.cfh = zy_cfmx.cfh) and
(jc_fylbzd.fybh = zy_cfmx.fygl) and
(jc_fylbzd.fybh = jc_fyzd.fybh) and
((jc_fyzd.lbbh = '2') and
(hjsj >= @ldt_sdate and
hjsj <= @ldt_edate))
GROUP BY jc_fyzd.lsfybh
return
end
return
END
GO
uj5u.com熱心網友回復:
接分先!uj5u.com熱心網友回復:
關注 接分轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/115143.html
標籤:數據庫相關
上一篇:請教下,用什么腳本把文本檔案里的一列或幾列資料倒如相關表的一列或幾列里呢?
下一篇:求助!給公司編軟體遇上困難
