Oracle APEX PL / SQL动态Action函数体

时间:2015-11-19 14:40:44

标签: oracle plsql oracle-apex

对这个pl / sql有任何帮助,我非常感谢。首先是一些基本信息。我正在使用APEX 4.2并拥有交互式报告和表单。我有兴趣在表单上构建动态操作,以便在LEAVE_DATE更改时,PL / SQL函数体(动态操作)计算此人是否在其开始日期的12个月内离开。以下是游戏中的列和我尝试过的内容。这两个计算是两个独立的动态动作。第一个是计算,如果该人在其BILL_READY DATE的12个月内离开,则第二个会在12个月内返回'Early Leaver'。如果他们可以在相同的计算中会很棒。

:P24_LEAVE_DATE (DATE)
:P24_BILL_READY (DATE)
:p24_NEW_LEAVE_DATE (DATE) CALULATED
:P24_MESSAGE (VARCHAR 255) --This would display 'Early Leaver' if within 12 months else null.

begin
case when :P24_LEAVING_DATE between :P24_BILL_READY AND (:P24_BILL_READY + 365) THEN (:P24_LEAVING_DATE - 30)
ELSE :P24_LEAVING_DATE
END CASE;
END;

感谢您的帮助,

1 个答案:

答案 0 :(得分:4)

您需要在项目P24_LEAVE_DATE上创建“更改”类型的动态操作。该动作将是PLSQL函数体类型的设定值动作。代码将是这样的:

declare
   l_date date;
begin
   if :p24_leaving_date between :p24_bill_ready and (:p24_bill_ready + 365)
   then
      l_date := :p24_leaving_date - 30;
   else
      l_date := :p24_leaving_date;
   end if;
   return l_date;
end;

我唯一不确定的是APEX如何处理日期值。如果将它们作为字符串值处理,则需要在其中添加一些字符串到日期代码。