Oracle define Day, Month in table 定义

Oracle define Day, Month in table definition

在 SQLServer 中,在 table 定义中,我可以有以下内容:

CREATE TABLE [DateTable] ( 
    [Daily_Date] [date] null,
    [DayPart] as (datepart(day,[Daily_Date])),
    [MonthPart] as (datepart(month,[Daily_Date]))
)

是否可以在 Oracle 中执行相同的操作?以下内容并不令人满意:

CREATE TABLE DateTable ( 
    Daily_Date Date null,
    DayPart as Extract (Day from Daily_Date)
    MonthPart Extract (Month from Daily_Date)
)

您的 DDL 引发错误:

ORA-02000: missing ( keyword

计算表达式周围必须有括号。 as 关键字也是必需的。最后,您在第二列和第三列的声明之间缺少一个逗号。

考虑:

CREATE TABLE DateTable ( 
    Daily_Date Date null,
    DayPart as (Extract(Day from Daily_Date)),
    MonthPart as (Extract(Month from Daily_Date))
);

Demo on DB Fiddle