首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL无效标识符00904。00000 - "%s:无效标识符“

SQL无效标识符00904。00000 - "%s:无效标识符“
EN

Stack Overflow用户
提问于 2020-10-06 18:03:06
回答 1查看 803关注 0票数 1

日历

代码语言:javascript
复制
CREATE TABLE CALENDAR
(
    CalendarKey int NOT NULL PRIMARY KEY,
    Date DATE DEFAULT (SYSDATE), 
    DayofWeek VARCHAR2(50) NOT NULL, 
    DayofMonth VARCHAR2(50) NOT NULL,
    DayofYear VARCHAR2(50) NOT NULL,
    WeekofMonth VARCHAR2(50) NOT NULL,
    WeekofYear VARCHAR2(50) NOT NULL,
    Month MONTH DEFAULT (SYSMONTH),
    Year YEAR DEFAULT (SYSYEAR)
);

此代码导致错误:

错误报告-

ORA-00904::无效标识符

00904。00000 - "%s:无效标识符“

*原因:

*行动:

没有发现任何错误,请帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-10-06 18:35:24

代码语言:javascript
复制
SQL> create table calendar
  2    (calendarkey int constraint pk_cal primary key,
  3     datum       date default (sysdate),
  4     dayofweek   varchar2(50) not null,
  5     dayofmonth  varchar2(50) not null,
  6     dayofyear   varchar2(50) not null,
  7     weekofmonth varchar2(50) not null,
  8     weekofyear  varchar2(50) not null,
  9     month       number(2) default extract (month from sysdate),
 10     year        number(4) default extract (year  from sysdate)
 11  );

Table created.

SQL>

那么,你做错了什么(连同其他笔记):

quotes)

  • primary
  • 您不能命名列date,因为它是为数据类型名称保留的(实际上,您可以这样做,但您不应该这样做--通过将其名称封装在双
  • 键中,这意味着该列不能包含空值,因此无需指定NOT NULL )。此外,在甲骨文中将所有constraints
  • there都命名为sysmonthsysyear也是一个好习惯,但是--如果我做对了--您可以使用sysdate提取这些值(月份和年份)
  • --您真的需要50个字符来存储日子和周吗?并不是说你被指控列的大小,但是.哪一天最多占用50个字符?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64231416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档