易截截图软件、单文件、免安装、纯绿色、仅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 归档与非归档的切换

首先查看数据库现有模式可使用以下语句
select name,log_mode from v$database;
也可以用下面的语句
archive log list;(该方法需要as sysdba)
SQL> archive log list
Database log mode       No Archive Mode
Automatic archival      Disabled
Archive destination      /export/home ......

Oracle的SOME,ANY和ALL操作

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

在oracle表中怎样创建自增长字段

.建立测试数据表
CREATE TABLE TEST
(
ID NUMBER PRIMARY KEY,
NAME VARCHAR2(20)
);
2.创建序列
CREATE SEQUENCE SEQ_TEST;
3.创建触发器
CREATE OR REPLACE TRIGGER AUTOINCREMENT
BEFORE INSERT ON TEST
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT SEQ_TEST.NEXTVAL INTO :NEW.ID from DUAL;
END; ......

oracle数据备份

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