为什么oracle在存数字的时候会采用类似NUM(10)这样的类型,而不是int,long?
这样做的好处是什么,NUM(2)和NUM(4),占用的存储空间是相同的么?
如果我建立了一个NUM(30)的数据类型,那我用OCI取数据时,应该如何写?问题有点多。。

解决方案 »

  1.   

    oracle字段类型也有long ,Long 用来存储最大长度为2GB的变长字符数据
    一般情况下大部分数字类型都以number型存储就足够了
    至于INTEGER  FLOAT   REAL 这些类型,都不是有效的字段类型,但是在写存储过程时,我们也可以根据需要使用这样数据类型,以节省资源
      

  2.   

    说的有点问题,oracle中可以使用INTEGER  FLOAT  REAL 这些类型作为字段,我没有用过,不好意思,更正一下
      

  3.   


    为什么oracle在存数字的时候会采用类似NUM(10)这样的类型,而不是int,long? 
    number(n)是oracle数字类型的标准方式,也可以number(m,n)来表示带小数的数字类型,oracle里有long,不过已经不是数据类型的概念了,是一种大数据类型的定义。 int也是有的,应该是表示一般的整数类型, 是NUMBER类型的子类型。对应的大小范围需要查一下文档了,这个主要是用于和其他数据库兼容的。这样做的好处是什么,NUM(2)和NUM(4),占用的存储空间是相同的么? 
    首先这里应该是number(2), number(4)
    这里和varchar等字符型类型不同,这里的2,4不是表示的存储空间的大小,而是表示的数字类型的精度的类型,
    对于number来说,可以支持整数,小数,浮点等,当然不同的精度所需要的存储空间也是不一样的。如果我建立了一个NUM(30)的数据类型,那我用OCI取数据时,应该如何写? 
    number(30)对应于你的应用所使用的语言的数据类型的范围就可以了,
      

  4.   

    oracle字段类型也有long ,Long 用来存储最大长度为2GB的变长字符数据