[20191002]函数dump的bug.txt
[20191002]函数dump的bug.txt
--//前几天写raw转化oracle number脚本,在使用函数dump时遇到一些问题,做一个记录:
--//oracle number 0 编码 是80,大于80是正数.
1.环境:
SCOTT@test01p> @ ver1
PORT_STRING VERSION BANNER CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0
2.dump 函数问题.
SCOTT@test01p> select dump(1e-130,16) from dual ;
DUMP(1E-130,16)
-----------------
Typ=2 Len=2: 80,2
SCOTT@test01p> select dump(1e-131,16) from dual ;
DUMP(1E-131,16)
---------------
Typ=2 Len=1: 80 --> 实际上是0.
--//但是如果输入:
SCOTT@test01p> select dump(to_number('.'||lpad('0',129,'0')||'1'),16) from dual;
DUMP(TO_NUMBER('.
-----------------
Typ=2 Len=2: 80,2
--//正确!!
SCOTT@test01p> select dump(to_number('.'||lpad('0',130,'0')||'1'),16) from dual;
DUMP(TO_NUMBER('.
-----------------
Typ=2 Len=2: 7f,b
SCOTT@test01p> select dump(to_number('.'||lpad('0',131,'0')||'1'),16) from dual;
DUMP(TO_NUMBER('.
-----------------
Typ=2 Len=2: 7f,2
SCOTT@test01p> select dump(to_number('.'||lpad('0',132,'0')||'1'),16) from dual;
DUMP(TO_NUMBER('.
-----------------
Typ=2 Len=2: 7e,b
SCOTT@test01p> select dump(to_number('.'||lpad('0',232,'0')||'1'),16) from dual;
DUMP(TO_NUMBER('.
-----------------
Typ=2 Len=2: 4c,b
--//很明显dump输入的数字没有采用科学计数法并且等于1e-131,1e-132存在bug.显示7f,2以及7e,b明显有问题.变成负数并且后面没有0x66.
--//可以将转化的编码是非法的.
--//to_number('.'||lpad('0',132,'0')||'1') = 1e-133
--//oracle 百进制转化为 0.10 * 100^(-67) . exp=-67, 尾数编码是 10 (十进制)+1 = 0xb .
--//193+(-67) = 126 = 0x7e.
--//或者将讲dump函数考虑不够仔细,在直接输入的情况下没有做边界检查.oracle number最小的正数字是1e-130.
--//而且可以猜测2种格式的数据oracle是分开处理的.
[20191002]函数dump的bug.txt的更多相关文章
- [20171220]toad plsql显示整形的bug.txt
[20171220]toad plsql显示整形的bug.txt --//下午有itpub网友反应,一个查询在sqlplus,pl/sql下不同.链接如下:--//http://www.itpub.n ...
- ASP无惧上传类不能上传中文双引号文件及ASP函数InStr存在bug
ASP无惧上传类不能上传中文双引号文件及ASP函数InStr存在bug 近日发现eWebEditor V2.8 asp 版本上传文件文件名不能包含中文双引号,发现eWebEditor使用ASP“无惧上 ...
- 0.11内核rd_load@ramdisk.c中memcpy函数好像有bug
0.11内核rd_load@ramdisk.c中memcpy函数好像有bug,如:#define memcpy(dst,src,n) \ __asm__("cld;rep;movsl& ...
- MySQL 对window函数执行sum函数疑似Bug
MySQL 对window函数执行sum函数疑似Bug 使用MySql的窗口函数统计数据时,发现一个小的问题,与大家一起探讨下. 环境配置: mysql-installer-community-8.0 ...
- 等待进程结束函数中的BUG
偶然发现一个BUG,有一个函数是这样写的: void WaitProcExit(DWORD dwPid) { HANDLE hProcess = OpenProcess(PROCESS_ALL_ACC ...
- #define宏定义形式的"函数"导致的bug
定义了一个宏定义形式的"函数": #define SUM8(YY)\ {\ int Y = YY>>2;\ ...\ } 然后使用的时候,传入了一个同名的变量Y: i ...
- adb bugreport > d:/bug.txt
adb bugreport > d: 快速下载anr等bug日志
- 命令行dump anr traces.txt文件
adb shell su ps //这里找到自己app对应的pid pid //退出shell 模式 adb pull /data/anr/traces.txt f:\log
- C++虚函数继承的bug
闲来无事想测试一下:如果在派生类中重写基类的虚函数,那么允不允许改变虚函数的访问权限,结果颠覆了三观..... 基类Base,拥有public方法test(),test()为虚函数 派生类Derive ...
随机推荐
- LayUi 树形组件tree 实现懒加载模式,展开父节点时异步加载子节点数据
LayUi框架中树形组件tree官方还在持续完善中,目前最新版本为v2.5.5 官方树形组件目前还不支持懒加载方式,之前我修改一版是通过reload重载实例方法填充子节点数据方式,因为递归页面元素时存 ...
- ArcGIS Desktop中为图像设置成不显示背景色
加载的栅格图层在arcgis中显示有黑色背景 方法一:如果有矢量边界的话,直接用矢量边界把黑色背景裁剪掉即可. 方法二: 如果是RGB三色: 这个只是不显示,并不改变原有的值 如果是值: 附:为影像数 ...
- Java反射01 : 概念、入门示例、用途及注意事项
1.Java反射定义 本文转载自:https://blog.csdn.net/hanchao5272/article/details/79360452 官方定义如下: Reflection enabl ...
- Hadoop、storm和Spark Streaming简单介绍(非原创)
文章大纲 一.Hadoop是什么二.storm是什么三.Spark Streaming是什么四.Spark与storm比较五.参考文章 一.Hadoop是什么 1. 简介 Hadoop是一个由Ap ...
- 201871010116-祁英红《面向对象程序设计(java)》第十二周学习总结
博文正文开头格式:(2分) 项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://ww ...
- Java 的synchronized关键字使用
synchronized 关键字是实现锁的一种方式,是在jvm层面实现的非公平锁,以下是使用synchronized的四种方式 synchronized 特性: 1.非公平锁 2.可重入性 1.作用在 ...
- Idea为类生成序列号(十一)
新建一个测试的实体类Gradle,实现java.io.Serializable接口,选择类名,按Alt+Enter键,出现的提示框中没有生成serialVersionUID的提示,这个需要设置之后才会 ...
- Codeforces Round #598 (Div. 3) A. Payment Without Change 水题
A. Payment Without Change You have a coins of value n and b coins of value 1. You always pay in exac ...
- Spring的增强模式
一.前置增强 1.IdoSomeService 2.IdoSomeServiceImpl类实现IdoSomeService接口 3.MyBeforeAdvice 实现前置增强方法 4.applicat ...
- LeetCode 205:同构字符串 Isomorphic Strings
题目: 给定两个字符串 s 和 *t*,判断它们是否是同构的. 如果 s 中的字符可以被替换得到 *t* ,那么这两个字符串是同构的. 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序.两个字 ...