|
|
1
11
从技术上讲,你不定义长度,而是定义精度和刻度。 无论定义列的精度和比例如何,相同的数值(如100,4.3)都采用相同的内部值。 列可以容纳的最大值是由精度和规模决定的。也就是说,可以将值100存储在数字(3,0)列中,但不能存储在数字(3,1)列中。 通常,如果列不应该存储小数,那么小数位数应该为零。记住,如果您试图将10.12存储在一个数字(3,0)中,它将存储值10。它不会出错(因为如果出错了,你很难在任何东西中存储三分之一的值)。如果你想让它出错,你需要允许更高的比例,并使用一个约束来停止它的使用。 我也相信你应该试着使用一个“合理”的精度。如果你在一千年中每秒存储一千个值,你仍然可以在14位之内。如果我看到一列数字(14,0),那么我知道在我的屏幕或打印输出中应该允许显示14个数字字符。如果我只看到数字或数字(38,0),那么我还没有得到任何指导,可能会猜出14个字符。如果他们把16个字符的信用卡号码放进去,我就错了。所以我不喜欢猜测。 同样在PL/SQL中,它们有一个PLS_INTEGER数据类型,其值高达2147483647。如果我看到一列数字(9,0),我知道我可以把它放入一个PLS_整数。当Java或.Net等应用程序想要确定将数据拉入/推送到数据库时要使用的数据类型、规模和精度时,可能会有类似的考虑。 |
|
|
2
8
你用什么都没关系
性能上唯一可能的区别是
|
|
|
3
4
对于Oracle中的32位数字,数字类型是一个可变长度的基10浮点值,保证精度为38位。见 the Oracle docs 和 this AskTom question . < 肥皂盒 > 事实上,我认为数字实际上是 最好的东西 在甲骨文里。我读过一个真理,大意是“任何产品(语言、数据库等)需要开发人员知道和关心数字变量中的位数都不适合商业编程”,并完全同意这一点。有 不 有人在编写会计软件时,会对其值是否适合32位小数、双长度ANSI浮点是否可能导致问题(他们会)或围绕计算机中的数字问题的无数其他问题发出嘘声的原因。数字太重要了,没有效率可言。YMMV公司。 < /肥皂盒 > 分享和享受。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |