请检查我在oracle中的插入。
SQL> desc post;
Name Null? Type
----------------------------------------- -------- --------------------
POST_BY NOT NULL NUMBER(15)
POST_NO NOT NULL NUMBER(8)
TEXT VARCHAR2(500)
LANTITUDE NUMBER(3,4)
LONGITUDE NUMBER(3,4)
NO_LIKE NUMBER(6)
POST_DATE DATE
SQL> INSERT INTO post
2 values(
3 1,
4 1,
5 'Say somthing from user ',
6 1,
7 1,
8 0,
9 sysdate
10 );
结果:
1,*
ERROR at line 6:
ORA-01438: value larger than specified precision allowed for this column
答案 0 :(得分:6)
我认为错误实际上是由您为某些列声明NUMBER(3,4)
类型的方式引起的:
NUMBER(7, 4)
这是定义一个精度为3位有效数字的数字,其中4位出现在小数位后面,其中-1位出现在小数位之前。仔细阅读最后一句,直到你明白为什么它不适用于值1.(如果你试图插入值0.002虽然...最多四个小数位,它会工作正常,并且第一个必须为零。)
如果您想为纬度和经度值提供4位小数精度,请使用以下定义:
{{1}}
这意味着小数位前3位数和小数位后4位数。
答案 1 :(得分:0)
此错误即将发生,因为您使用数字(3,4)作为其数据类型。数字(3,4)表示有3位有效数字和小数点后4位数。更改它。我认为它会起作用。< / p>