【问题标题】:SQL Error: ORA-01722: invalid numberSQL 错误:ORA-01722:无效号码
【发布时间】: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')

错误报告 - SQL 错误:ORA-01722:无效号码 01722. 00000 - “无效号码” *原因:指定的号码无效。 *操作:指定一个有效的数字。

【问题讨论】:

  • 工作得很好:sqlfiddle.com/#!4/d6a1a4/1 虽然这 不是 导致您的问题,但绝不应在数字周围使用单引号。它们仅用于字符值。

标签: oracle


【解决方案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”值。哪个是字符串,请去掉非字符串数据类型的引号

    【讨论】:

      猜你喜欢
      • 2012-09-14
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 2021-05-03
      • 2023-03-15
      相关资源
      最近更新 更多