新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Oracle通過函數(shù)進(jìn)行進(jìn)制轉(zhuǎn)化
十六進(jìn)制轉(zhuǎn)化為十進(jìn)制:to_number()
創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的十年時間我們累計服務(wù)了上千家以及全國政企客戶,如不銹鋼雕塑等企業(yè)單位,完善的項目管理流程,嚴(yán)格把控項目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實力獲得客戶的一致稱贊。
SQL> select to_number('a','x') from dual; TO_NUMBER('A','X') ------------------ 10
十進(jìn)制轉(zhuǎn)化為十六進(jìn)制:to_char()
SQL> select to_char(10,'xxx') from dual; TO_CHAR(10,' ------------ a
二進(jìn)制沒有辦法直接轉(zhuǎn)化可以通過函數(shù)實現(xiàn):
十進(jìn)制轉(zhuǎn)化為二進(jìn)制
CREATE OR REPLACE FUNCTION NUMBER_TO_BIT(V_NUM NUMBER) RETURN VARCHAR IS V_RTN VARCHAR(8);--注意返回列長度 V_N1 NUMBER; V_N2 NUMBER; BEGIN V_N1 := V_NUM; LOOP V_N2 := MOD(V_N1, 2); V_N1 := ABS(TRUNC(V_N1 / 2)); --取商的絕對值 V_RTN := TO_CHAR(V_N2) || V_RTN; EXIT WHEN V_N1 = 0; END LOOP; --返回二進(jìn)制長度 SELECT lpad(V_RTN,8,0) --八位不足補0 INTO V_RTN FROM dual; return V_RTN; end;
二進(jìn)制轉(zhuǎn)化為十進(jìn)制:
CREATE OR REPLACE FUNCTION BIT_TO_NUMBER(P_BIN IN VARCHAR2) RETURN NUMBER AS V_SQL VARCHAR2(30000) := 'SELECT BIN_TO_NUM('; V_RETURN NUMBER; BEGIN IF LENGTH(P_BIN) >= 256 THEN RAISE_APPLICATION_ERROR(-20001, 'INPUT BIN TOO LONG!'); END IF; IF LTRIM(P_BIN, '01') IS NOT NULL THEN RAISE_APPLICATION_ERROR(-20002, 'INPUT STR IS NOT VALID BIN VALUE!'); END IF; FOR I IN 1 .. LENGTH(P_BIN) LOOP V_SQL := V_SQL || SUBSTR(P_BIN, I, 1) || ','; END LOOP; V_SQL := RTRIM(V_SQL, ',') || ') FROM DUAL'; EXECUTE IMMEDIATE V_SQL INTO V_RETURN; RETURN V_RETURN; END;
創(chuàng)建函數(shù)同義詞
create public synonym number_to_bit for number_to_bit; grant execute on number_to_bit to public
十六轉(zhuǎn)二和二轉(zhuǎn)十六,則可以結(jié)合十轉(zhuǎn)十六函數(shù)和二轉(zhuǎn)十函數(shù)進(jìn)行,這里不在額外舉例。
ASCII碼及ORACLE元數(shù)據(jù)轉(zhuǎn)換函數(shù):RAWTOHEX和HEXTORAW
SQL> select rawtohex(1) from dual; RAWTOHEX(1) ------------ C102 SQL> select rawtohex('1') from dual; RAWTOH ------ 31 SQL> select rawtohex('a') from dual; RAWTOH ------ 61 SQL> select rawtohex('A') from dual; RAWTOH ------ 41 SQL> select hextoraw('A') from dual; HE -- 0A SQL> select hextoraw('1') from dual; HE -- 01
文章標(biāo)題:Oracle通過函數(shù)進(jìn)行進(jìn)制轉(zhuǎn)化
當(dāng)前鏈接:http://www.ef60e0e.cn/article/gosghh.html