自动将参数传递给oracle plsql函数

自动将参数传递给oracle plsql函数,oracle,function,plsql,oracle10g,oracle-apex,Oracle,Function,Plsql,Oracle10g,Oracle Apex,我已经编写了两个用于库存和销售比较的plsql函数。一个作为“查找”产品,另一个作为“查找”库存中的“查找”使用情况 我可以通过从库存函数中查找使用量来减少查找产品削减已售出函数,从而得到库存和销售之间的差异。为此,我应该将From date和To date传递给这两个函数。“起始日期”和“截止日期”取自库存表中的“库存日期”列。然后我的函数返回给定日期范围的值 现在,我想使用我的函数创建一个折线图,以获得库存和SLAE之间的差异。图表应该自动生成。没有用户通行证,从日期到日期 库存表中的库存日

我已经编写了两个用于库存和销售比较的plsql函数。一个作为“查找”产品,另一个作为“查找”库存中的“查找”使用情况

我可以通过从库存函数中查找使用量来减少查找产品削减已售出函数,从而得到库存和销售之间的差异。为此,我应该将From date和To date传递给这两个函数。“起始日期”和“截止日期”取自库存表中的“库存日期”列。然后我的函数返回给定日期范围的值

现在,我想使用我的函数创建一个折线图,以获得库存和SLAE之间的差异。图表应该自动生成。没有用户通行证,从日期到日期

库存表中的库存日期列示例

我想将上述日期自动传递给我的函数,如下所示

From        To
26-JAN-12   30-JAN-12
24-JAN-12   26-JAN-12
23-JAN-12   24-JAN-12
18-JAN-12   23-JAN-12
15-JAN-12   18-JAN-12
13-JAN-12   15-JAN-12
12-JAN-12   13-JAN-12
11-JAN-12   12-JAN-12
08-JAN-12   11-JAN-12
06-JAN-12   08-JAN-12
我如何才能做到这一点?

您可以使用或分析函数:

select stock_date, lead(stock_date, 1, null) over (order by stock_date) next_date
from stock_table
然后使用查询结果进行输入,即:

SELECT find_usage_from_stock(t.product_id, t.start_date, t.end_date) as usage_from_stock, 
       find_prodcuts_sold(t.product_id, t.start_date, t.end_date) as prodcuts_sold, 
       t.product_id, t.start_date
FROM (select stock_date as start_date, 
             lead(stock_date, 1, null) over (order by stock_date) as end_date, 
             product_id
      from stock_table) t

注意:我在lead函数中使用null作为空值,也许您需要添加其他内容

A.B.Cade,您的答案是正确的。但我不知道如何将答案返回的日期作为参数传递给我的函数。我该怎么做?有两个功能,如下所示。从库存id、从日期到日期查找使用情况;查找\u prodcuts\u soldp\u id,从\u日期到\u日期;您是如何运行这些功能的?使用脚本plsql?创建数据库视图?基本上,您可以在select语句中使用它们,即-select find_USERATION_from_stock P_id、t.stock_date、t.next_date from select stock_date、leadstock_date、1、null over order by stock_date next_date from stock_TAB.Cade,我使用我的函数在oracle apex中创建图表。@Bishan,我不熟悉oracle apex,但从我在一些教程中看到的情况来看,您可以从sql查询构建图表。如果我是对的,那么我上一篇评论中的例子可以作为一个开始,我不知道在p_idA.B.Cade中放什么,谢谢你上一篇的例子。我的问题还没有解决。但是你上一个例子给了我一个开始。对不起,这是产品id
SELECT find_usage_from_stock(t.product_id, t.start_date, t.end_date) as usage_from_stock, 
       find_prodcuts_sold(t.product_id, t.start_date, t.end_date) as prodcuts_sold, 
       t.product_id, t.start_date
FROM (select stock_date as start_date, 
             lead(stock_date, 1, null) over (order by stock_date) as end_date, 
             product_id
      from stock_table) t