我得到 “ORA-01722:无效号码” 从该查询:为什么我从这个查询中得到无效号码?
INSERT INTO OLD_MATCHES
(ID, LEAGUE, WEEK, MATCH_DATE, HOME, AWAY, HOME_GOALS, AWAY_GOALS, HOME_BET, DRAW_BET, AWAY_BET, LEAGUE_SEASON)
VALUES
(OLD_MATCHES_SEQ.NEXTVAL, 240, 11, '26-02-2016', 'Chelsea', 'Arsenal', 3, 0, 2, 3, 4, 'Premier league');
我看着在甲骨文常见问题解答这样的解释:
的ORA-01722( “无效号码”)时发生错误时的尝试将字符串转换为数字,并且该字符串不能转换为有效数字。有效的数字包含数字'0'到'9',可能有一个小数点,字符串开头或结尾的符号(+或 - ),或'E'或'e'(如果它是浮动的科学记数法中的点数)。所有其他角色都被禁止。
但它对我没有意义。
序列脚本:
CREATE SEQUENCE FOOTBALL.OLD_MATCHES_SEQ
START WITH 12
MAXVALUE 999999
MINVALUE 1
NOCYCLE
NOCACHE
NOORDER;
表脚本:
CREATE TABLE FOOTBALL.OLD_MATCHES
(
ID NUMBER NOT NULL,
LEAGUE NUMBER,
WEEK NUMBER,
MATCH_DATE DATE,
HOME VARCHAR2(100 BYTE),
AWAY VARCHAR2(100 BYTE),
HOME_GOALS NUMBER,
AWAY_GOALS NUMBER,
HOME_BET NUMBER(5,2),
AWAY_BET NUMBER(5,2),
DRAW_BET NUMBER(5,2),
LEAGUE_SEASON NUMBER
)
另外,'26 -02-2016'是一种非常奇怪的方式来在sql中设置日期格式。 '20160226'是仅限日期的值的标准,'2016-02-26 00:00:00.000'是包含时间分量的值的标准。 –