ORA-01722: oracle 中 Number 数据类型的数字无效

ORA-01722: invalid number for Number datatype in oracle

我试图在 KPI_DEFINITION table 中插入一个值,但出现了错误 ORA-01722: invalid number。错误是 KPI_FREQUENCY 数据类型为 NUMBER 的字段,它试图插入值“0,5”。我认为数字数据类型允许整数和浮点值。但是还是报错

Insert into RATOR_MONITORING_CONFIGURATION.KPI_DEFINITION (KPI_DEF_ID,KPI_NAME,KPI_DESC,KPI_FREQUENCY) values ('10003881','Backlog Resul11t','Backlog Result11','0,5');

在 SQL 中,数字 不是 使用单引号指定的。

另外:小数位数使用点 . 而非逗号分隔。所以你需要这样写:

Insert into RATOR_MONITORING_CONFIGURATION.KPI_DEFINITION 
  (KPI_DEF_ID,KPI_NAME,KPI_DESC,KPI_FREQUENCY) 
values 
  ('10003881','Backlog Resul11t','Backlog Result11', 0.5);
                                                      ^
                                                      Here

如果 KPI_DEF_ID 也是一个数字列,也删除该值的单引号:

有关如何指定数字或字符串文字的完整文档,请参阅手册:

https://docs.oracle.com/database/121/SQLRF/sql_elements003.htm#i139891

您的 KPI_FREQUENCY 可能的数据类型是 number(2,1)
修改您的 insert 语句

Insert into  RATOR_MONITORING_CONFIGURATION.KPI_DEFINITION (KPI_DEF_ID,KPI_NAME,KPI_DESC,KPI_FREQUENCY) 
    values ('10003881','Backlog Resul11t','Backlog Result11',0.5);