数字格式 SQL 插入



我创建了一个表格,其中一列的格式为NUMBER(2,3). 我尝试插入值5.73,但它不起作用。

错误是:

ORA-01438 -  "value larger than specified precision allowed for this column"
Cause:    When inserting or updating records, a numeric value was entered
that exceeded the precision defined for the column.*

我阅读了文档,但不了解规模。

那么,小数点后有 0-99 个值的接受格式是什么?

谢谢。

你误解了精度和比例。 您有一个精度为 2 的数字。 这意味着有两个有效数字。 它的小数位数为 3,这意味着它们位于小数点的右侧。

因此,您的列可以表示介于 0.000 和 0.099 之间的值

你想要的是NUMERIC(5, 3). "精度 - 小数位数"是小数点左侧的位数。

这是从这里来的: https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832

或者,您还可以指定精度(总位数(和小数位数(小数点右侧的>位数(:

column_name数(精度、小数位数(

因此,在您的示例中,您允许总共 2 位数字(和小数点右侧的 3 位数字(。这不适用于 5.73,也许您需要一种允许 3 位数字 2 位的数字 (3,2( 可以在小数点的右边。

最新更新