[20160828]number类型.txt

简介: [20160828]number类型.txt --昨天看了一个链接http://www.cnblogs.com/kerrycode/p/4427352.html,感觉有点不对,上班测试看看。

[20160828]number类型.txt

--昨天看了一个链接http://www.cnblogs.com/kerrycode/p/4427352.html,感觉有点不对,上班测试看看。

1.环境:
SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

create table tx ( a number,b number(38,2) ,c number(38));
insert into tx values (1/3,1/3,1/3);
commit ;


SCOTT@book> select * from tx;
         A          B          C
---------- ---------- ----------
.333333333        .33          0

2.测试:
set serveroutput on

DECLARE 
CURSOR c_test IS SELECT a,b,c FROM Tx;
c_row c_test%rowtype;
begin
   for c_row in c_test loop
        dbms_output.put_line('the result is a=' || c_row.a);
        dbms_output.put_line('the result is b=' || c_row.b);
        dbms_output.put_line('the result is c=' || c_row.c);
   end loop;
end;
/

the result is a=.3333333333333333333333333333333333333333
the result is b=.33
the result is c=0
PL/SQL procedure successfully completed.

SCOTT@book> @ &r/desc tx
           Name Null?    Type
           ---- -------- ----------------------------
    1      A             NUMBER
    2      B             NUMBER(38,2)
    3      C             NUMBER(38)

--很明显我并没有测试出作者的情况,实际上定义number,并不意味者精度是0.估计作者使用pl/sql的原因。

SCOTT@book> select dump(a,10) c80 ,dump(b,10) c30 ,dump(c,10) c20 from tx;
C80                                                                              C30                            C20
-------------------------------------------------------------------------------- ------------------------------ --------------------
Typ=2 Len=21: 192,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34    Typ=2 Len=2: 192,34            Typ=2 Len=1: 128

--你可以发现字段a,长度是21,也就是在生产系统最好不要简单的定义类型number,要加入整数部分长度的限制,避免一些运算导致字
--段占用空间很大,最佳的方式准确的设置scale。

--另外我曾经在使用copy命令(sqlplus)时出现异常,可以参考链接:
http://blog.itpub.net/267265/viewspace-1257036/

--使用copy后丢失了小数点后面的信息,数据类型number变成了number(38).

--总之最好不要简单的定义类型是number,要写成number(10) ,如果有精度需求加入number(10,3).

目录
相关文章
|
8月前
|
存储 JavaScript 安全
TypeScript 中的 Number 类型,Number 类型的特性、常见操作和注意事项
TypeScript 中的 Number 类型,Number 类型的特性、常见操作和注意事项
500 1
el-input的number类型里输入e、+、-符号返回值为空?
el-input的number类型里输入e、+、-符号返回值为空?
464 0
|
3月前
|
存储 Java Apache
Python Number类型详解!
本文详细介绍了 Python 中的数字类型,包括整数(int)、浮点数(float)和复数(complex),并通过示例展示了各种算术操作及其类型转换方法。Python 的 `int` 类型支持任意大小的整数,`float` 类型用于表示实数,而 `complex` 类型用于表示复数。此外,文章还对比了 Python 和 Java 在数字类型处理上的区别,如整数类型、浮点数类型、复数类型及高精度类型,并介绍了各自类型转换的方法。尽管两种语言在语法上有所差异,但其底层逻辑是相通的。通过本文,读者可以更好地理解 Python 的数字类型及其应用场景。
68 2
TS定义布尔值,let flag:boolean = true,定义数字类型 let a1:number = 10,赋值 let str1:string = ‘‘,打印c~.log($(str1))
TS定义布尔值,let flag:boolean = true,定义数字类型 let a1:number = 10,赋值 let str1:string = ‘‘,打印c~.log($(str1))
TS,数据类型概述,常见的基本数据类型有number/string/boolean/undefined/null,字符串用““,let food: string = ‘糖葫芦‘,布尔类型
TS,数据类型概述,常见的基本数据类型有number/string/boolean/undefined/null,字符串用““,let food: string = ‘糖葫芦‘,布尔类型
TS,类型注解 number就是类型注解,TS类型注解是一种为变量添加类型约束的方式,你定义什么类型,就只能赋值什么类型,变量命名规则,变量名称不能以数字开头,交换变量写法
TS,类型注解 number就是类型注解,TS类型注解是一种为变量添加类型约束的方式,你定义什么类型,就只能赋值什么类型,变量命名规则,变量名称不能以数字开头,交换变量写法
|
8月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之使用JDBC方式读取Oracle的number类型时,通过什么方式进行映射
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
177 0
实时计算 Flink版产品使用合集之使用JDBC方式读取Oracle的number类型时,通过什么方式进行映射
|
8月前
|
存储
TS 自定义结构Long与number类型相互转换
TS 自定义结构Long与number类型相互转换
271 0
|
Oracle 关系型数据库 数据库
在Flink CDC中,使用Oracle 11g数据库的NUMBER类型作为主键
在Flink CDC中,使用Oracle 11g数据库的NUMBER类型作为主键
139 1
|
机器学习/深度学习
计算sum=1+2...+n,要求number和sum的类型都是int,且sum在32位以内~
计算sum=1+2...+n,要求number和sum的类型都是int,且sum在32位以内~