我创建了下表:
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:文字与格式字符串不匹配。
使用后(DESCRIBE match
),它说长度只有7.我认为它应该是10。
提前感谢您的帮助。
答案 0 :(得分:6)
嗯,格式YYYYMMDD
可能不是数据库日期格式(您应该查找NLS_DATE_FORMAT
以查看db日期格式是什么)。
但是在系统级别有一个NLS_DATE_FORMAT
,在会话级别有一个(可能是其他的)NLS_DATE_FORMAT
。
您可以使用TO_DATE
并指定格式来实现您想要的目标:
INSERT INTO match VALUES(1001, TO_DATE('20130515', 'YYYYMMDD'), 90000, 'American Airlines Arena', 001);