1

If I have an ID field that is 7 characters long what do I set the scale and precision to? This is rather confusing. Or say a field of 10 characters for a phone number ... what is the S and P then?

4

2 回答 2

2

对于电话号码或社会安全号码、邮政编码或 ISBN 等一系列数字,请考虑您将对其执行哪些操作。

你会在:

  1. 将它们加在一起,取平均值,用可变的小数位数表示它们,将它们相乘等等?
  2. 或者你会检查长度,将它们分成一个模式,需要保留任何前导零,提取一组字符(前三个,后四个),将它们与正则表达式进行比较,等等?

如果是前者,那么它们是数字,您应该将它们存储为整数。如果是后者,那么它们是被限制为仅由某些字符组成的字符串,您应该将它们存储为具有适当检查约束的字符串。

我想目前你问的是“我的水族箱水应该保持在什么温度才能让猫留在里面”?答案可能是根本不这样做,因为你最终会被咬伤。

于 2013-09-23T07:31:20.830 回答
1

对于 ID,由于您不需要小数,因此 7 的精度和 0 的小数位数适用于您的情况。对于电话号码,您将使用 varchar2 或类似的东西,在这种情况下,比例和精度将不适用。

您提到了 ID 的“字符”,但我假设它是数字的。

可以在此处找到有关 Oracle 规模和精度的文档... http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832

具体来说:

...您还可以指定精度(总位数)和比例(小数点右侧的位数)

请注意,虽然精度和比例是可选的,但您甚至可能不需要为 ID 之类的东西担心它们。

可以在此处找到更多示例...精度和比例之间有什么区别?

于 2013-09-23T06:19:01.697 回答