oracle的 double字段类型,到底能存储多少个位啊?比如说,double是8个byte吧。那么存储的时候,整数部分以及小数部分最多可以存储多少个啊(123456789.113456789,那个整数部分是9个,小数部分也是9个)。
解决方案 »
- 现在求助 ORA-01461: can bind a LONG value only for insert into a LONG column
- 一个去重复的sql语句咋就这么难写???
- 分区表上的索引问题
- oracle的随机函数为什么不能查处随机的值.解决马上给分
- V$session 与V$sql的联系
- oracle数据库导入错误????
- ora-12541 tns 没有监听器
- 怎么写这个for循环?(在线等待)
- oracle数据库中可不可以设置一列的值自动增加???
- RAC上的goldengate,两个节点的归档路径不一样,怎么处理
- AIX5.3 RAC 10.2.0.4的数据库hang问题?
- oracle exp 不导出某张表。
NUMBER(m,n)就可以实现DOUBLE精度
SQL> create table test(id double);
create table test(id double)
*
第 1 行出现错误:
ORA-00905: 缺失关键字
SQL> create table test(id number(10,3));表已创建。--在plsql过程里double也不合法
SQL> declare
2 id double;
3 begin
4 id:=2345645.43534;
5 dbms_output.put_line(id);
6 end;
7 /
id double;
*
第 2 行出现错误:
ORA-06550: 第 2 行, 第 10 列:
PLS-00103: 出现符号 ";"在需要下列之一时:
precision
符号 "precision" 被替换为 ";" 后继续。
SQL> ed
已写入 file afiedt.buf 1 declare
2 id number(20,8);
3 begin
4 id:=2345645.43534;
5 dbms_output.put_line(id);
6* end;
SQL> /PL/SQL 过程已成功完成。SQL> set serveroutput on;
SQL> /
2345645.43534PL/SQL 过程已成功完成。
那问下number类型,存储的时候,整数部分以及小数部分最多可以存储多少个啊(123456789.113456789,那个整数部分是9个,小数部分也是9个)
前者,有效数字位数,后者小数部分位数
只不过很少用 最好还是number(18,9)
难道是我的表述有问题吗?我只想知道number这个字段8byte的存储最大值到底是多少?
Number(p,s)
P和s都是可选的。
P指精度(precision),即总位数。默认情况下精度为38。精度的取值范围为1~38.
S指小数位(scale).小数点右边的位数。小数点位数的合法值为-48~127。小数位的默认值由精度来决定。如果没有指定精度,小数位默认为最大的取值区间.如果指定了精度,没有指定小数位。小数位默认为0(即没有小数位).
精度和小数位不会影响数据如何存储,只会影响允许哪些数值及数值如何舍入。