Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx
- 文档编号:16267934
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:10
- 大小:16.38KB
Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx
《Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx》由会员分享,可在线阅读,更多相关《Oracle中的二进制八进制十进制十六进制相互转换函数文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
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));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 中的 二进制 八进制 十进制 十六进制 相互 转换 函数