这里是 Oracle 8。

将日期传递给过程时,我可以传递一个 '' 而不会抛出任何内容。

测试MYDATE := ''不评估为真。 LENGTH < 1 也没有. DBMS_OUTPUT 显示没有任何内容通过参数。

试图通过 '01-30-2009' (instead of 30-JAN-2009)抛出无效日期错误。

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

如何测试有效日期?

请您参考如下方法:

在更高版本的 Oracle 中,空字符串被认为与 NULL 相同。这可能就是您遇到的问题。

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

就无效日期错误而言,如果字符串的格式为 dd-mmm-yyyy,Oracle 会将其隐式转换为日期。否则,您将不得不使用适当的掩码在 to_date 中运行它。

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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!