请检查我在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 );
Run Code Online (Sandbox Code Playgroud)
结果:
1,*
ERROR at line 6:
ORA-01438: value larger than specified precision allowed for this column
Run Code Online (Sandbox Code Playgroud)
我相信错误实际上是由您NUMBER为某些列声明类型的方式引起的:
NUMBER(3,4)
Run Code Online (Sandbox Code Playgroud)
这是定义一个精度为3位有效数字的数字,其中4位出现在小数位后面,其中-1位出现在小数位之前.仔细阅读最后一句,直到你看到为什么它对值1不起作用.(如果你试图插入值0.002虽然......最多四位小数,第一个必须为零,它会工作正常.)
如果要为纬度和经度值提供4位小数精度,请使用以下定义:
NUMBER(7, 4)
Run Code Online (Sandbox Code Playgroud)
这意味着小数位前3位数和小数位后4位数.
| 归档时间: |
|
| 查看次数: |
10355 次 |
| 最近记录: |