1

我创建了下表:

CREATE TABLE match(
match_id NUMBER(4,0), 
match_date DATE, 
attendance NUMBER(6,0), 
stadium_name VARCHAR2(40), 
tournament_id NUMBER(3,0),
CONSTRAINT match_id_pk PRIMARY KEY(match_id),
CONSTRAINT match_stadium_name_fk FOREIGN KEY(stadium_name) 
           REFERENCES stadium(stadium_name));

我尝试插入以下行:

INSERT INTO match VALUES(1001, '20130515', 90000, 'American Airlines Arena', 001);

我发现的所有内容都告诉我格式是 YYYYMMDD。但是我不断收到 ORA-01861: literal does not match format string。

使用 ( DESCRIBE match) 后,它说长度只有 7。我以为它应该是 10。

提前感谢您的帮助。

4

1 回答 1

7

好吧,格式YYYYMMDD可能不是数据库日期格式(您应该查看数据库日期格式是NLS_DATE_FORMAT什么)。

但是NLS_DATE_FORMAT在系统级别有一个,在会话级别有一个(可能是其他的)NLS_DATE_FORMAT

TO_DATE您可以使用并指定格式来实现您想要的:

INSERT INTO match VALUES(1001, TO_DATE('20130515', 'YYYYMMDD'), 90000, 'American Airlines Arena', 001);
于 2013-10-04T12:59:46.117 回答