Oracle 日期为空,而不是使用默认值

Oracle 日期为空,而不是使用默认值,oracle,plsql,Oracle,Plsql,我正在尝试编写一个简单的脚本,提示用户输入值,如果用户选择不插入任何内容,将使用我指定的默认值。按照其工作方式,如果用户不插入任何内容,则该值为null。我觉得这应该是简单的,但我一直无法找到一个答案使用谷歌 DECLARE jobfromdate date default SYSDATE - 1; jobtodate date default SYSDATE; BEGIN jobfromdate := &jobfromdate; jobtodate := &jobto

我正在尝试编写一个简单的脚本,提示用户输入值,如果用户选择不插入任何内容,将使用我指定的默认值。按照其工作方式,如果用户不插入任何内容,则该值为null。我觉得这应该是简单的,但我一直无法找到一个答案使用谷歌

DECLARE 
jobfromdate date default SYSDATE - 1;
jobtodate date default SYSDATE;
BEGIN
  jobfromdate := &jobfromdate;
  jobtodate := &jobtodate;
   dbms_output.put_line(TO_CHAR(jobfromdate, 'MM-DD-YYYY'));
   dbms_output.put_line(TO_CHAR(jobtodate, 'MM-DD-YYYY'));
END;

如这里所述,您不能从PL/SQL进行提示,只能传递参数

要使用默认值而不是null,可以使用COALESCE或NVL

SELECT COALESCE( jobfromdate, l_default_date) result
FROM jobdates;

您的代码总是将变量设置为默认值,但之后它总是根据替换变量(&)重新为它们指定一个新值。因此默认值实际上被忽略了。