Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx

上传人:b****6 文档编号:16267934 上传时间:2022-11-22 格式:DOCX 页数:10 大小:16.38KB
下载 相关 举报
Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx_第1页
第1页 / 共10页
Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx_第2页
第2页 / 共10页
Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx_第3页
第3页 / 共10页
Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx_第4页
第4页 / 共10页
Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx

《Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx》由会员分享,可在线阅读,更多相关《Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx

FUNCTIONf_hex_to_oct(p_strINVARCHAR2)RETURNVARCHAR2;

FUNCTIONf_hex_to_dec(p_strINVARCHAR2)RETURNVARCHAR2;

FUNCTIONf_dec_to_bin(p_intINVARCHAR2)RETURNVARCHAR2;

FUNCTIONf_dec_to_oct(p_intINVARCHAR2)RETURNVARCHAR2;

FUNCTIONf_dec_to_hex(p_intINVARCHAR2)RETURNVARCHAR2;

ENDpkg_number_trans;

/

CREATEORREPLACEPACKAGEBODYpkg_number_transIS

FUNCTIONf_bin_to_oct(p_strINVARCHAR2)RETURNVARCHAR2IS

----------------------------------------------------------------------------------------------------------------------

--对象名称:

f_bin_to_oct

--对象描述:

二进制转换八进制

--输入参数:

p_str二进制字符串

--返回结果:

八进制字符串

--测试用例:

SELECTpkg_number_trans.f_bin_to_oct('

11110001010'

)FROMdual;

--备 

注:

需要定义f_stragg函数和type_str_agg类型

v_returnVARCHAR2(4000);

v_bin 

VARCHAR2(4000);

BEGIN

v_bin:

=substr('

00'

||p_str,-3*ceil(length(p_str)/3));

SELECTf_stragg(data1)INTOv_return

FROM(SELECT(CASEupper(substr(v_bin,(rownum-1)*3+1,3))

WHEN'

000'

THEN'

0'

001'

1'

010'

2'

011'

3'

100'

4'

101'

5'

110'

6'

111'

7'

END)data1

FROMdual

CONNECTBYrownum<

=length(v_bin)/3);

RETURNv_return;

EXCEPTION

WHENOTHERSTHEN

RETURNNULL;

ENDf_bin_to_oct;

FUNCTIONf_bin_to_dec(p_strINVARCHAR2)RETURNVARCHAR2IS

f_bin_to_dec

二进制转换十进制

十进制字符串

SELECTpkg_number_trans.f_bin_to_dec('

v_return 

SELECTSUM(data1)INTOv_return

FROM(SELECTsubstr(p_str,rownum,1)*power(2,length(p_str)-rownum)data1

=length(p_str));

ENDf_bin_to_dec;

FUNCTIONf_bin_to_hex(p_strINVARCHAR2)RETURNVARCHAR2IS

f_bin_to_hex

二进制转换十六进制

十六进制字符串

||p_str,-4*ceil(length(p_str)/4));

FROM(SELECT(CASEupper(substr(v_bin,(rownum-1)*4+1,4))

0000'

0001'

0010'

0011'

0100'

0101'

0110'

0111'

1000'

8'

1001'

9'

1010'

A'

1011'

B'

1100'

C'

1101'

D'

1110'

E'

1111'

F'

=length(v_bin)/4);

ENDf_bin_to_hex;

FUNCTIONf_oct_to_bin(p_strINVARCHAR2)RETURNVARCHAR2IS

f_oct_to_bin

八进制转换二进制

p_str八进制字符串

二进制字符串

SELECTpkg_number_trans.f_oct_to_bin('

3612'

SELECTto_char(to_number(f_stragg(data1)))INTOv_return

FROM(SELECT(CASEupper(substr(p_str,rownum,1))

ENDf_oct_to_bin;

FUNCTIONf_oct_to_dec(p_strINVARCHAR2)RETURNVARCHAR2IS

f_oct_to_dec

八进制转换十进制

SELECTpkg_number_trans.f_oct_to_dec('

FROM(SELECTsubstr(p_str,rownum,1)*power(8,length(p_str)-rownum)data1

ENDf_oct_to_dec;

FUNCTIONf_oct_to_hex(p_strINVARCHAR2)RETURNVARCHAR2IS

八进制转换十六进制

SELECTpkg_number_trans.f_oct_to_hex('

SELECTpkg_number_trans.f_oct_to_bin(p_str)INTOv_binFROMdual;

SELECTpkg_number_trans.f_bin_to_hex(v_bin)INTOv_returnFROMdual;

ENDf_oct_to_hex;

FUNCTIONf_dec_to_bin(p_intINVARCHAR2)RETURNVARCHAR2IS

f_dec_to_bin

十进制转换二进制

p_str十进制字符串

SELECTpkg_number_trans.f_dec_to_bin('

1930'

v_hex 

SELECTpkg_number_trans.f_dec_to_hex(p_int)INTOv_hexFROMdual;

SELECTpkg_number_trans.f_hex_to_bin(v_hex)INTOv_returnFROMdual;

ENDf_dec_to_bin;

FUNCTIONf_dec_to_oct(p_intINVARCHAR2)RETURNVARCHAR2IS

f_dec_to_oct

十进制转换八进制

SELECTpkg_number_trans.f_dec_to_oct('

SELECTpkg_number_trans.f_dec_to_bin(p_int)INTOv_binFROMdual;

||v_bin,-3*ceil(length(v_bin)/3));

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1