SQL 错误:ORA-01722:无效号码
Posted
技术标签:
【中文标题】SQL 错误:ORA-01722:无效号码【英文标题】:SQL Error: ORA-01722: invalid number 【发布时间】:2015-11-28 06:53:39 【问题描述】:这是我的桌子。
CREATE TABLE SCHEDULE (
SCHEDULE_ID INT NOT NULL
,ARRV_TIME INT NOT NULL
,DEP_TIME INT NOT NULL
,BUS_TRANSFERS VARCHAR2(40) NOT NULL
,BUS_ID NUMERIC NOT NULL
,TRAVEL_DIRECTION VARCHAR(10) NOT NULL
,WEEK_DAY INTEGER NOT NULL
);
我运行这个插入语句
INSERT INTO SCHEDULE (SCHEDULE_ID, ARRV_TIME, DEP_TIME, BUS_TRANSFERS, BUS_ID, TRAVEL_DIRECTION, WEEK_DAY)
VALUES (SEQ_SCHEDULE.NEXTVAL,'10', '11', 'White Oak', '2', 'North', '4');
我收到此错误消息:
从第 1 行开始的错误命令 - INSERT INTO SCHEDULE (SCHEDULE_ID、ARRV_TIME、DEP_TIME、BUS_TRANSFERS、BUS_ID、 TRAVEL_DIRECTION, WEEK_DAY) 值 (SEQ_SCHEDULE.NEXTVAL,'10', '11', '白橡树', '2', '北', '4')
错误报告 - 01722. 00000 - “无效号码” *原因:指定的号码无效。 *操作:指定一个有效的数字。
【问题讨论】:
工作得很好:sqlfiddle.com/#!4/d6a1a4/1 虽然这 不是 导致您的问题,但绝不应在数字周围使用单引号。它们仅用于字符值。 【参考方案1】:试试这个:-
CREATE TABLE SCHEDULE(
SCHEDULE_ID INTEGER NOT NULL ,
ARRV_TIME INTEGER NOT NULL ,
DEP_TIME INTEGER NOT NULL ,
BUS_TRANSFERS VARCHAR2(40) NOT NULL ,
BUS_ID INTEGER NOT NULL ,
TRAVEL_DIRECTION VARCHAR2(10) NOT NULL ,
WEEK_DAY INTEGER NOT NULL );
INSERT INTO SCHEDULE(SCHEDULE_ID, ARRV_TIME, DEP_TIME,BUS_TRANSFERS,BUS_ID, TRAVEL_DIRECTION, WEEK_DAY)
VALUES(SEQ_SCHEDULE.NEXTVAL,10,11, 'White Oak',2,'North',4);
【讨论】:
【参考方案2】:此错误是因为您已将到达时间声明为 int,并且您正尝试为此插入“10”值。哪个是字符串,请去掉非字符串数据类型的引号
【讨论】:
以上是关于SQL 错误:ORA-01722:无效号码的主要内容,如果未能解决你的问题,请参考以下文章
SELECT FROM AS 导致 ORA-01722: 无效号码
Oracle sql 错误 ora-01722 无效数字 ora-02063 前行来自
ORA-01722:无效号码 ORA-06512:在“BWSTAGE.LOAD_CONTACT_PROCEDURE”,第 8 行 ORA-06512:在第 2 行