【发布时间】:2017-07-11 16:33:00
【问题描述】:
我有以下问题。
我有很少的 oracle 程序(例如 proc_1、proc_4),每个程序检索一行很少的列。
我没有把所有的程序语句都放在上面,因为它们很大,只是程序的第一个语句的一些例子,所以你知道,它们对于 proc_1 和 proc_4 是相同的:
CREATE OR REPLACE PROCEDURE proc_1 (
proc_1_cursor IN OUT Reports.rep_type,
date_parameter IN system_days.daytime%TYPE)
AS
BEGIN
OPEN proc_1_cursor FOR
select * from -----
然后在 Crystal Reports 中,有人在 CR 公式中报告并使用这些不同过程的结果:
if {?DATE_PARAMETER}>= DateTime (2012, 01, 01, 00, 00, 00)and {?DATE_PARAMETER}<= DateTime (2012, 12, 31, 00, 00, 00) then
({proc_1.DRY_GAS_MTD_KSM3}/1.07322+{proc_1.TOTAL_DRY_GAS_MTD_KNM3})+({proc_4.DRY_GAS_FLARE_MTD_KNM3})
else
if {?DATE_PARAMETER}>= DateTime (2015, 01, 01, 00, 00, 00)and {?DATE_PARAMETER}<= DateTime (2015, 12, 31, 00, 00, 00) then
({proc_1.DRY_GAS_MTD_KSM3}/1.07322+{proc_1.TOTAL_DRY_GAS_MTD_KNM3})-({proc_4.DRY_GAS_FLARE_MTD_KNM3})
else
if {?DATE_PARAMETER}>= DateTime (2016, 01, 01, 00, 00, 00)and {?DATE_PARAMETER}<= DateTime (2016, 12, 31, 00, 00, 00) then
({proc_1.DRY_GAS_MTD_KSM3}/1.07322+{proc_1.TOTAL_DRY_GAS_MTD_KNM3})+({proc_4.DRY_GAS_FLARE_MTD_KNM3})-({proc_1.GAS_TO_LPG_M_MTD_KSM3})-
({proc_1.GAS_TO_T_FIELD_M_MTD_KSM3}/1.07322)})
我想要的是在 Oracle 程序中运行上面的 Crystal Report 计算,该程序将调用 proc_1 和 proc_4 程序,所以在 Oracle 中计算而不是在 CR 中计算并将最终结果放入 CR, 你能帮我看看这个 oracle 程序怎么样?
谢谢,
【问题讨论】:
标签: sql oracle stored-procedures oracle11g