1 DUMP(w[,x[,y[,z]]])
2 【功能】返回数据类型、字节长度和在内部的存储位置.
3 【参数】
4 w为各种类型的字符串(如字符型、数值型、日期型……)
5 x为返回位置用什么方式表达,可为:8,10,16或17,分别表示:8/10/16进制和字符型,默认为10。
6 y和z决定了内部参数位置
7
8
9 【返回】类型 <[长度]>,符号/指数位 [数字1,数字2,数字3,......,数字20]
10 如:Typ=2 Len=7: 60,89,67,45,23,11,102
11
12 SELECT DUMP('ABC',1016) FROM dual;
13 返回结果为:Typ=96 Len=3 CharacterSet=ZHS16GBK: 41,42,43
14
15   代码 数据类型
16   0 对应 VARCHAR2
17   1 对应 NUMBER
18   8 对应 LONG
19   12 对应 DATE
20   23 对应 RAW
21   24 对应 LONG RAW
22   69 对应 ROWID
23   96 对应 CHAR
24   106 对应 MSSLABEL
25
26
27
28 各位的含义如下:
29
30 1.类型: Number型,Type=2 (类型代码可以从Oracle的文档上查到)
31 2.长度:指存储的字节数
32 3.符号/指数位
33 在存储上,Oracle对正数和负数分别进行存储转换:
34 正数:加1存储(为了避免Null)
35 负数:被101减,如果总长度小于21个字节,最后加一个102(是为了排序的需要)
36
37 指数位换算:
38 正数:指数=符号/指数位 - 193 (最高位为1是代表正数)
39 负数:指数=62 - 第一字节
40
41 4.从<数字1>开始是有效的数据位
42
43 从<数字1>开始是最高有效位,所存储的数值计算方法为:
44
45 将下面计算的结果加起来:
46
47 每个<数字位>乘以100^(指数-N) (N是有效位数的顺序位,第一个有效位的N=0)
48
49 5、举例说明
50
51 SQL> select dump(123456.789) from dual;
52 返回:Typ=2 Len=6: 195,13,35,57,79,91
53
54 <指数>: 195 - 193 = 2
55 <数字1> 13 - 1 = 12 *100^(2-0) 120000
56 <数字2> 35 - 1 = 34 *100^(2-1) 3400
57 <数字3> 57 - 1 = 56 *100^(2-2) 56
58 <数字4> 79 - 1 = 78 *100^(2-3) .78
59 <数字5> 91 - 1 = 90 *100^(2-4) .009
60   123456.789
61
62 SQL> select dump(-123456.789) from dual;
63 返回:Typ=2 Len=7: 60,89,67,45,23,11,102
64 算法:
65 <指数> 62 - 60 = 2(最高位是0,代表为负数)
66 <数字1> 101 - 89 = 12 *100^(2-0) 120000
67 <数字2> 101 - 67 = 34 *100^(2-1) 3400
68 <数字3> 101 - 45 = 56 *100^(2-2) 56
69 <数字4> 101 - 23 = 78 *100^(2-3) .78
70 <数字5> 101 - 11 = 90 *100^(2-4) .009
71   123456.789(-)
72
73 现在再考虑一下为什么在最后加102是为了排序的需要,-123456.789在数据库中实际存储为
74
75 60,89,67,45,23,11
76
77 而-123456.78901在数据库中实际存储为
78
79 60,89,67,45,23,11,91
80
81 可见,如果不在最后加上102,在排序时会出现-123456.789<-123456.78901的情况。
82
83

【功能】返回数据类型、字节长度和在内部的存储位置.DUMP(w[,x[,y[,z]]])的更多相关文章

  1. MySQL数据类型字节长度

    1.字符串 char(n): n 字节长度 varchar(n): 如果是 utf8 编码, 则是 3 n + 2字节; 如果是 utf8mb4 编码, 则是 4 n + 2 字节. 2.数值类型: ...

  2. c语言数据类型字节长度

    突然间就想到了long和int到底什么区别(发现有很多问题都是突然间想到的),然后百度.google各种查找,各种书籍:<C++ Primer>.<C程序设计语言>查看,终于明 ...

  3. js识别中英文字符的字节长度并进行裁切

    //调用方法,传入字符串和需要返回的字节长度即可function cutstr(str,len){ var str_length = 0; var str_len = 0; str_cut = new ...

  4. C++中各种数据类型占据字节长度

    准备校招笔试的时候经常遇到C++某个数据类型占据多少个字节的问题,查阅了下资料,总结如下: 首先罗列一下C++中的数据类型都有哪些: 1.整形:int.long 2.字符型:char.wchar_t ...

  5. C#返回字符串的字节长度,一个中文算两个字符的代码

    如下代码段是关于C#返回字符串的字节长度,一个中文算两个字符的代码. public static int GetLength(string str) { if (str.Length == 0) re ...

  6. java String长度与varchar长度匹配理解(字符和字节长度理解)

    java String长度与varchar长度匹配理解(字符和字节长度理解) string中的length()长度,返回的是char的数量,每个char可以存储世界上任何类型的文字和字符,一个char ...

  7. 《超实用的Node.js代码段》连载一:获取Buffer对象字节长度

    我们知道Node.js框架下的Buffer对象能够对二进制数据提供很好的支持,那么获取一个Buffer对象真实的字节长度则是必须要用到的功能了.Node.js框架为开发人员提供了一个Buffer.by ...

  8. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目

    ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)   我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...

  9. 升级d7的代码到2010以上版本注意事项(SetLength的参数就是字符长度,而不是字节长度,但Move函数要改)

    delphi2010是delphi所有版本的分水岭,其中2010—xe10.2之间版本上的代码都有比较好的兼容性,基本上都能直接进行编译,不需要过多修改,但d7距d2010跨度4个版本以上,新版本除了 ...

随机推荐

  1. H5新特性之canvas

    canvas无疑是H5之中最受欢迎的新特性了,它可以让浏览毫无费力的画出各种图案,动画. canvas的性能不会因为画布上的图案多少而改变,因此做动画用canvas性能也相当优秀. canvas最基本 ...

  2. P1282 多米诺骨牌

    P1282 多米诺骨牌 题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S ...

  3. 即将上线的Spark服务器面临的一系列填坑笔记

    即将上线的Spark服务器面临的一系列填坑笔记 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 把kafka和flume倒腾玩了,以为可以轻松一段时间了,没想到使用CDH部署的spa ...

  4. php7连接 sqlserver踩过的坑,could not find driver解决方式

    最近把环境升级为php7发现在连接sqlser的时候无法使用驱动了 页面错误 后来查看文档发现:php7应该采用Server=xxxx;DataBase=xxxxx 解决方式: DB_DSN_TWO ...

  5. JavaScript Array() 对象:push() 和 join() 方法

    <script> var fruits = ["Banana", "Orange", "Apple", "Mango& ...

  6. Linux记录-普通用户下执行sudo xxx 找不到命令解决方案

    chmod 777 /etc/sudoers vim /etc/sudoers 1.可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径.这个指令指定当用户执行 ...

  7. jcaptcha和kaptcha验证码使用入门【转】

    jcaptcha和kaptcha验证码使用入门 一.jcaptcha验证码使用 jcaptcha使用默认样式生成的验证码比较难以识别,所以需要自定义验证码的样式,包括,背景色.背景大小.字体.字体大小 ...

  8. CodeForces - 348D Turtles(LGV)

    https://vjudge.net/problem/CodeForces-348D 题意 给一个m*n有障碍的图,求从左上角到右下角两条不相交路径的方案数. 分析 用LGV算法.从(1,1)-(n, ...

  9. Git基础考试题

    Git: 1.在windows上搭建git环境,成功后查看版本号 Linux安装 sudo apt-get install git -y yum install git -y windows直接安装e ...

  10. Linux命令(九)查找文件find

    4. find -type f   文件 d  目录 l   连接 5. find -size 6. find -maxdepth -2 (最深路径为2) 7. find ./ -maxdepth 1 ...