Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自动计算oracle APEX的日期_Oracle_Date_Apex_Computation - Fatal编程技术网

自动计算oracle APEX的日期

自动计算oracle APEX的日期,oracle,date,apex,computation,Oracle,Date,Apex,Computation,如何根据用户的输入计算日期? 也就是说,根据用户输入的内容,当前日期将增加3个月或5个月,以此类推 我尝试向日期选择器添加计算: 提交日期仅显示当前日期(已实施) 发布日期应为提交日期+3个月或+5个月,具体取决于用户在其他字段中的输入 到目前为止,我还使用以下pl/sql函数体添加了一个计算,但它不起作用 DECLARE sub_date DATE default null; BEGIN if :P75_THESISTYPE =1 then sub_date := :P75_SUBMIS

如何根据用户的输入计算日期? 也就是说,根据用户输入的内容,当前日期将增加3个月或5个月,以此类推

我尝试向日期选择器添加计算:

  • 提交日期仅显示当前日期(已实施)
  • 发布日期应为提交日期+3个月或+5个月,具体取决于用户在其他字段中的输入
到目前为止,我还使用以下pl/sql函数体添加了一个计算,但它不起作用

DECLARE
sub_date DATE default null;
BEGIN
if :P75_THESISTYPE =1
then 
sub_date := :P75_SUBMISSION_DATE +6;
else
sub_date := :P75_SUBMISSION_DATE +3;
END IF;
return sub_date;
end;

页面项目被视为VARCHAR2,因此在对其执行算术运算之前,需要将其转换为日期:

DECLARE
  sub_date DATE default null;
BEGIN
  if :P75_THESISTYPE =1
  then 
    sub_date := TO_DATE(:P75_SUBMISSION_DATE) +6;
  else
    sub_date := TO_DATE(:P75_SUBMISSION_DATE) +3;
  END IF;
  return sub_date;
end;
/

@TonyAndrews的过程是正确的,但由于他遵循了您最初的陈述,因此不会产生预期的结果。将整数添加到数据中会增加天数而不是月份。您需要的是添加月份功能;因此:

DECLARE
  sub_date DATE default null;
BEGIN
  if :P75_THESISTYPE =1
  then 
    sub_date := add_months(to_date(:P75_SUBMISSION_DATE),6);
  else
    sub_date := add_months(to_date(:P75_SUBMISSION_DATE),3);
  end if
  return sub_date;
end;
/

当然,上面假设变量的格式与nls_数据_格式匹配。一般来说,充其量只是一个危险的假设,

你说的“不工作”是什么意思?提出错误?或者做什么?此计算将在页面提交时执行,因此在此之前您不会看到结果。我实际希望的是,根据用户的选择,提交日期将自动设置,因此,在当前日期上加上一定数量的月份,这就是提交日期的结果。实际发生了什么?当使用上述pl/sql函数体时,我得到以下错误:ORA-06550:第6行,第13列:PLS-00382:表达式的类型错误ORA-06550:第6行,第1列:PL/SQL:语句忽略ORA-06550:第8行,第13列:PLS-00382:表达式的类型错误ORA-06550:第8行,第1列:PL/SQL:语句忽略谢谢-现在我可以回答这个问题了!