易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle中的Number和Float类型

Number类型
Oracle number datatype 语法:NUMBER[(precision [, scale])]
有效为:从左边第一个不为0的数算起的位数。
scale > 0
   精确到小数点右边s位,并四舍五入。然后检验有效位是否 <= p。
scale < 0
   精确到小数点左边s位,并四舍五入。然后检验有效位是否 <= p + |s|。
scale = 0
    NUMBER表示整数
Float类型
【copy】今天有人问我,他把字段类型设计成float(2)后,插入数据93.5,后,为什么变成了90?
为了说明这个问题,我们先来看一段话(http://www.cnoug.org/viewthread.php?tid=56643):Oracle Online Help 说:FLOAT(b) specifies a floating-point number with binary precision b. The precision b can range from 1 to 126. To convert from binary to decimal precision, multiply b by 0.30103。
根据这段话,我们可以看到,float(2)中的2是一个binary precision,而不是我们常用的decimal precision。他们之间的换算关系是:binary precision=int(b*0.30103),因此我们这里实际上的精度应该等于int(2*0.30103)=0,即小数点后精度为0。
回到我们原来的问题,93.5化成浮点型9.35*10^1,这时9.35小数点后精度为0,成9,因此最后变成9*10^1=90。
类似的,我们可以设计成float(10),那么int(10*0.30103)=3,因此,如果插入93.5,就得出9.35--精度为3-->9.350,9.350*10^1=93.5。如果插入13884.2,得出1.38842--精度为3-->1.388,1.388*10^4=13880。


相关文档:

Oracle移植到MySQL注意事项

  客户用的数据库是mysql,而研发好的产品支持oracle,为了让客户掏腰包,我们必须把数据库环境从oracle转向mysql。我们在转换的过程中碰到了下面一些问题,希望能给同样遭遇的同仁们一些借鉴。如果我们在最初的设计、编码过程中注意数据库的移植性,这种情况下可以完全不需要作额外工作。
  一、数据库环境从oracle转 ......

Oracle 时区问题

oracle中的tz_offset是用来返回给定时区与标准时区(UTC universal of time Coordinate 通用时间坐标)的偏移量,其参数可以是:
1.一个合法的时区名
2.一个离UTC的标准偏移量
3.关键字SessionTimeZone或者是DB_timezone
 
其中合法的时区名可以从系统视图V$TimeZone_names中的列TZname中的得到:
TZNAME
— ......

oracle 统计每月累积购买人数

oracle 可有什么方法 统计每月累积购买人数
比如说有个门店 2008年购买商品的人数
表:t_buy_log  字段 f_username 用户名称;购买时间f_buytime

1 如果是统计每月购买人数
select to_char(f_buytime,'yyymm'),count(distinct f_username)
from t_buy_log
group by to_char(f_buytime,'yyymm')
......

Oracle的SOME,ANY和ALL操作

平时很少用的这几个操作,今天遇到了。于是又看了一下文档。
SOME和ANY一样,是比较宽松的,类似于OR。满足其中任何一个都可以。
ALL要求严格一些,类似于AND,必须全部满足才可以。
不能单独使用: Must be preceded by =, !=, >, <, <=, >=.
其实更应该关注的是紧跟着的备注信息,这个一开始比较难以理解 ......

oracle数据备份

/// <summary>  
        /// 数据库备份  
        /// </summary>  
        /// <param name="fileName">dmp文件名称</param>  
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号