资源描述:
《oracle会话函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DUMP(w[,x[,y[,z]]])【功能】返回数据类型、字节长度和在内部的存储位置.【参数】w为各种类型的字符串(如字符型、数值型、日期型……)x为返回位置用什么方式表达,可为:8,10,16或17,分别表示:8/10/16进制和字符型,默认为10。y和z决定了内部参数位置【返回】类型<[长度]>,符号/指数位[数字1,数字2,数字3,......,数字20]如:Typ=2Len=7:60,89,67,45,23,11,102SELECTDUMP('ABC',1016)FROMdual; 返回结果为:Typ=96Len=3Character
2、Set=ZHS16GBK:41,42,43 代码数据类型 0对应VARCHAR2 1对应NUMBER 8对应LONG 12对应DATE 23对应RAW 24对应LONGRAW 69对应ROWID 96对应CHAR 106对应MSSLABEL各位的含义如下:1.类型:Number型,Type=2(类型代码可以从Oracle的文档上查到)2.长度:指存储的字节数3.符号/指数位在存储上,Oracle对正数和负数分别进行存储转换:正数:加1存储(为了避免Null)负数:被101减,如果总长度小于21个字节,最后加一个102(是为了
3、排序的需要)指数位换算:正数:指数=符号/指数位-193(最高位为1是代表正数)负数:指数=62-第一字节4.从<数字1>开始是有效的数据位从<数字1>开始是最高有效位,所存储的数值计算方法为:将下面计算的结果加起来:每个<数字位>乘以100^(指数-N)(N是有效位数的顺序位,第一个有效位的N=0)5、举例说明SQL>selectdump(123456.789)fromdual;返回:Typ=2Len=6:195,13,35,57,79,91<指数>:195-193=2<数字1>13-1=12*100^(2-0)120000<数字2>35-1
4、=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.789SQL>selectdump(-123456.789)fromdual;返回:Typ=2Len=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*1
5、00^(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的情况。greatest(exp1,exp2,exp3,……,expn)【功能】返
6、回表达式列表中值最大的一个。如果表达式类型不同,会隐含转换为第一个表达式类型。【参数】exp1……n,各类型表达式【返回】exp1类型【示例】SELECTgreatest(10,32,'123','2006')FROMdual;SELECTgreatest('kdnf','dfd','a','206')FROMdual;least(exp1,exp2,exp3,……,expn)【功能】返回表达式列表中值最小的一个。如果表达式类型不同,会隐含转换为第一个表达式类型。【参数】exp1……n,各类型表达式【返回】exp1类型【示例】SELECTlea
7、st(10,32,'123','2006')FROMdual;SELECTleast('kdnf','dfd','a','206')FROMdual;【语法】NVL(expr1,expr2)【功能】若expr1为NULL,返回expr2;expr1不为NULL,返回expr1。注意两者的类型要一致【语法】NVL2(expr1,expr2,expr3)【功能】expr1不为NULL,返回expr2;expr2为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型user【功能】返回当前会话对应的数据库用
8、户名。【参数】无【返回】字符型uid【功能】返回当前会话所对应的用户id号。【参数】无【返回】字符型userenv(parameter)【功能】返回当