在oracle过程的参数中测试有效日期

Sam*_*Sam 2 oracle

Oracle 8在这里.

将日期传递给过程时,我可以传递一个''而不会抛出任何东西.

测试MYDATE := ''不是真实的.也没有LENGTH < 1.DBMS_OUTPUT显示没有通过参数的任何内容.

试图传递'01-30-2009' (instead of 30-JAN-2009)抛出无效的日期错误.

如何传递零长度字符串有效?

如何测试有效日期?

Tom*_*ard 5

在Oracle的更高版本中,空字符串被视为与NULL相同.这可能是你遇到的.

您可以将参数设置为非null,然后它应该出错.(正如Jeffery Kemp在评论中指出的那样,你不能对参数使用not null)

就无效日期错误而言,如果字符串的格式为dd-mmm-yyyy,Oracle将隐式地将字符串转换为日期.否则,您必须使用正确的掩码通过to_date运行它.

我不熟悉Oracle 8所以我不确定它是什么新东西.希望这会有所帮助.