ORA-01722!为什么不能在没有出现此错误的情况下将NUMBER插入NUMBER数据字段?

时间:2018-12-20 19:34:20

标签: sql oracle

有人可以告诉我这是怎么回事吗?

所以我有一个简单的表位置,它只有两列;一个是数字,另一个是varchar2。

我只是试图在locations表中插入一些数据,这样我就可以与其他更大的数据集进行破解,但是每次都会得到这个该死的错误。

Error starting at line : 7 in command -
INSERT INTO location
VALUES (1, 'Head Office')
Error report -
ORA-01722: invalid number

注意:在拒绝投票之前,是的-我看到其他人对此发表了评论,但通常是出于一些比我试图在数字字段中输入字符串或在字符串字段中输入数字的情况不明显的事情! / p>

但是,在我的情况下,INSERT语句中的数据是数字,数据类型也是NUMBER!

数据结构:

CREATE TABLE location(
    locID NUMBER(4) NOT NULL,
    locName VARCHAR2(100) NOT NULL
);

插入声明:

INSERT INTO location
VALUES (1, 'Head Office');

错误代码可以在上面我第一次提到它的地方看到。

谢谢。

P.S。可能值得一提的是,“位置”表中的ID字段在单独的表“员工”中被用作FOREIGN KEY。但是,我已经检查了数据类型是否匹配!

编辑#1:我正在使用ORACLE SQL Developer

2 个答案:

答案 0 :(得分:2)

在进行reverse=False时始终包括列:

insert

根据您对问题的描述,实际上不应解决此问题。这只是个好习惯。

以上是您的表的正确SQL。如果错误继续发生,则可能是来自表上的触发器。

答案 1 :(得分:0)

像它的愚蠢一样,您从“ 总部”而不是从 1 收到号码错误。实际上,您正在尝试将字符串插入数字。 如果您不想编写要插入的列名,则应完全按表中的位置在插入位置 中定义所有值。我认为你的表结构是

locId|locNumber

因此您的插入内容应如下所示

insert into table values (1,'head office')

希望您能理解快捷方式逻辑