I can reproduce that - it's a bug.
Workaround = sysdate+(1/24). I will check if such a bug has already been logged.
Thanks for reporting this,
SQL Developer Team
Update: Turns out this behavior comes from the JDeveloper framework:
Bug 13082091 - INVALID DEFAULT VALUE EXPRESSION ERROR USING COMPLEX DEFAULT VALUE FOR COLUMN
That bug is marked as closed (Closed, Not a Bug) with the following recommendation, but I like my workaround better.
The validation error can be overcome by disabling data and time default value validation via the
Tool-> preferences -> Database -> uncheck "Validate date and time default values" option.
So if your default DATE / TIMESTAMP expression causes any issues, use the JDeveloper workaround.
Message was edited by: Gary Graham
thank you for the response.
I like your workaround more too.
But could you please describe the way how you found this workaround.
It's for me in case where I'll maybe need to use another complex expression as a default value for DATE column?
Use parentheses to explicitly specify the evaluation order of the expression:
Instead of 'sysdate + 1/24' parentheses were used to explicitly specify '(1/24)' as a sub-expression.
There isn't any way to 'guarantee' that will work for any and all expressions - JDeveloper has a bug in there expression analyzer but apparently appear to have chosen NOT to admit that it is a bug.
Dont' be surprised if that thing that is 'not a bug' disappears in a future JDeveloper release!