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. Makefile ------ .PHONY的作用

    看下面的例子 Makefile文件 .PHONY: cleanclean: rm *.o 当Makefile文件所在目录有文件名为clean的文件,命令行“.PHONY: clean”又没添加的话,执 ...

  2. 批处理 ------ @、ECHO OFF、ECHO ON 的使用

    1.在批处理文件中,如果命令前加@,表示这条命令不打印出来,只把结果打印出来,即@是关闭命令本身的回显 2.::在批处理中表示注释某一行 3.ECHO ON表示接下来的命令中(不包括本命令),执行命令 ...

  3. Harbor镜像清理

    目录 清理UI中的镜像 清理镜像释放空间 docker镜像仓库中镜像的清理,一直是个比较麻烦的事情.尤其是在测试环境当中,每天都会有大量的构建.由此会产生大量的历史镜像,而这些镜像,大多数都没有用. ...

  4. Golang面向对象编程-struct(结构体)

    Golang面向对象编程-struct(结构体) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是面向对象编程 面向对象编程(Object Oriented Program ...

  5. GO语言的进阶之路-爬虫进阶之路

    GO语言的进阶之路-爬虫进阶之路 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分.我们今天要介绍的就是一个简单的网络爬 ...

  6. 如何下载网易云音乐APP里的MV和短视频?

    本人:网易云音乐死粉,朋友圈大多都用的是云音乐,因为推荐功能牛逼 然后:发现云音乐APP里越来越多吸引我的短视频,经常看到好的就想保存到相册,然后微信发给朋友 但是:不知道怎么下载网易云音乐的短视频, ...

  7. Oracle记录-Linux JDK与Oracle profile环境配置

    1.LINUX JDK环境配置 #set java environment export JAVA_HOME=/usr/java/jdk1.7.0_79 export JRE_HOME=/usr/ja ...

  8. centos文件与权限

    切换目录 cd:切换目录. 当我们需要进入到别的目录的时候,就需要使用到cd这个命令. ‘ cd这个命令主要有以下几种使用方式; cd [~]:进入当前用户的家目录,比如我是fuwh这个用户登陆的,则 ...

  9. 图标网站,IcoMoon,自己动手做一个 font

    很有用的IcoMoon,在线制作工工具:https://icomoon.io/app/#/select/font 大神解说:如何灵活利用免费开源图标字体-IcoMoon篇http://www.zhan ...

  10. 15. Spring boot CRUD

    一.列表页 templates/emp/list.html 0.侧边栏链接: <li class="nav-item"> <a class="nav-l ...