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。
相关文档:
本文转载:http://blog.csdn.net/flm_0722/archive/2009/10/08/4643566.aspx
一、设置初始化参数 job_queue_processes
sql> alter system set job_queue_processes=n;(n>0)
job_queue_processes最大值为1000
查看job queue 后台进程
sql>select name,description from v$bgprocess;
......
declare
n number(10);
tsql varchar2(100);
begin
select test_seq.nextval into n from dual;
n:=-(n-1);
tsql:='alter ......
一. Oracle 控制文件主要包含如下条目
DATABASE ENTRY
CHECKPOINT PROGRESS RECORDS
REDO THREAD RECORDS
LOG FILE RECORDS
DATA FILE RECORDS
TEMP FILE RECORDS
TABLESPACE RECORDS
LOG FILE HISTORY RECORDS
OFFLINE RANGE RECORDS
ARCHIVED LOG RECORDS
BACKUP SET RECORDS
BACKUP PIECE RECORD ......
首先查看数据库现有模式可使用以下语句
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 ......
BEGIN
SELECT ...
SELECT ...
SELECT ...
...
EXCEPTION
WHEN NO_DATA_FOUND THEN -- catches all ’no data found’ errors
2、异常的分类
有两种类型的异常,一种为内部异常,一种为用户自定义异常,内部异常是执行期间返回到PL/SQL块的ORACLE错误或由PL/ ......