- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle 几个特殊函数dump()、convert()、substrb()、lengthb()
一、DUMP()函数DUMP(w[,x[,y[,z]]])【功能】返回数据类型、字节长度和在内部的存储位置.【参数】 w为各种类型的字符串(如字符型、数值型、日期型……) x为返回位置用什么方式表达,可为:8,10,16或17,分别表示:8/10/16进制和字符型,默认为10。 y和z决定了内部参数位置【返回】类型 [长度],符号/指数位 [数字1,数字2,数字3,......,数字20]如:Typ=2 Len=7: 60,89,67,45,23,11,102SELECT DUMP(ABC,1016) FROM dual; 返回结果为:Typ=96 Len=3 CharacterSet=ZHS16GBK: 41,42,43 代码 数据类型 0 对应 VARCHAR2 1 对应 NUMBER 8 对应 LONG 12 对应 DATE 23 对应 RAW 24 对应 LONG RAW 69 对应 ROWID 96 对应 CHAR 106 对应 MSSLABEL 各位的含义如下:1.类型: Number型,Type=2 (类型代码可以从Oracle的文档上查到)2.长度:指存储的字节数3.符号/指数位在存储上,Oracle对正数和负数分别进行存储转换:正数:加1存储(为了避免Null)负数:被101减,如果总长度小于21个字节,最后加一个102(是为了排序的需要)指数位换算:正数:指数=符号/指数位 - 193 (最高位为1是代表正数) 负数:指数=62 - 第一字节4.从数字1开始是有效的数据位从数字1开始是最高有效位,所存储的数值计算方法为:将下面计算的结果加起来:每个数字位乘以100^(指数-N) (N是有效位数的顺序位,第一个有效位的N=0)5、举例说明SQL select dump(123456.789) from dual;返回:Typ=2 Len=6: 195,13,35,57,79,91 指数: 195 - 193 = 2 数字1 13 - 1 = 12 *100^(2-0) 120000 数字2 35 - 1 = 34 *100^(2-1) 3400 数字3 57 - 1 = 56 *100^(2-2) 56 数字4 79 - 1 = 78 *100^(2-3) .78 数字5 91 - 1 = 90 *100^(2-4) .009 123456.789 SQL select dump(-123456.789) from dual;返回:Typ=2 Len=7: 60,89,67,45,23,11,102算法:指数 62 - 60 = 2(最高位是0,代表为负数) 数字1 101 - 89 = 12 *100^(2-0) 120000 数字2 101 - 67 = 34 *100^(2-1) 3400 数字3 101 - 45 = 56 *100^(2-2) 56 数字4 101 - 23 = 78 *100^(2-3) .78 数字5 101 - 11 = 90 *100^(2-4) .009 123456.789(-) 现在再考虑一下为什么在最后加102是为了排序的需要,-123456.789在数据库中实际存储为60,89,67,45,23,11 而-123456.78901在数据库中实际存储为 60,89,67,45,23,11,91 可见,如果不在最后加上102,在排序时会出现-123456.789-123456.78901的情况。 二、substrb函数substr和substrb 以前知道有substrb,lengthb等函数,也知道它们是以byte来计算长度,可没用过,也不太明白什么地方需要用到它们。一直就是用substr,length,以字符来计算长度,在我看来varchar2和char里面存的都是字符,那么自然也就不可能以byte为单位来计算长度,也就用不到这些函数了,但事实证明我错了。最近有个procedure出错,往表里insert时总是报1401错误,看了一下程序,觉得问题很奇怪,目标表出错字段的长度是50,insert的对应这个字段的取法也是substr(**,1,50),怎么会出错呢?有些怀疑是汉字字符为双字节的原因,于是试着将substr(**,1,50)改为了substr(**,1,25),果然ok。上网找原因,在asktom上找到了解答。数据库里的varchar2和char字段长度定义是有两种方式,按字节或按字符,按字节定义长度的方式是varchar2
您可能关注的文档
- 2016年酒泉市直事业单位公开招聘29人公告.doc
- 2016西医综合考研要点:免疫缺陷的类型.doc
- 2013年中考英语真题汇编——完形填空(附答案).doc
- 2013年河北省普通高中高三教学质量监测.doc
- 2013年番禺学校卫生工作要点.doc
- 2013届高考政治(必修3)一轮复习课件:第4课 文化的继承性与文化发展.ppt
- 2、dcs主要子系统及特点.doc
- 2PSK误码率程序及仿真图.doc
- 2、_第二章_信息的获取学案.doc
- 2013年秋九年级第一次目标检测文综试卷1.doc
- 【地理】2010年高考试题——文综地理部分(山东卷)解析版.doc
- oralce大学ODI培训资料16.ppt
- OSPF邻居的八种状态.doc
- PCL1.6.0与VS2010配置-详细.doc
- perl 模式匹配总结.doc
- 【基础知识篇】2013-2014学年高中物理人教版必修一同步练测:第四章第1节牛顿第一定律.doc
- 【学法指导】历史试题常见命题用语解释(上)12.17.doc
- 【备考2011】政治高效学习方案考点专项:《经济主义初级阶段的经济制度》教案(人教版).doc
- Photoshop CS4 真题A 答案.doc
- 【成才之路】2014-2015学年湘教版高中地理必修1第4单元《自然环境对人类活动的影响》综合测试.doc
文档评论(0)