oracle進位-10進位跟2進位互轉

來源:互聯網
上載者:User

標籤:

CREATE OR REPLACE FUNCTION NUMBER_TO_BIT(V_NUM NUMBER)RETURN VARCHAR IS V_RTN VARCHAR(8);--注意返回列長度  V_N1  NUMBER;  V_N2  NUMBER;BEGINV_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 WHENV_N1 = 0;    END LOOP;--返回二進位長度 SELECT lpad(V_RTN,8,0)    INTO   V_RTN    FROM dual;return V_RTN;
END;
CREATE OR REPLACEFUNCTION BIT_TO_NUMBER(P_BIN INVARCHAR2) RETURNNUMBER 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!‘);  ENDIF;  IF LTRIM(P_BIN, ‘01‘) IS NOT NULL THEN    RAISE_APPLICATION_ERROR(-20002, ‘INPUT STR IS NOT VALID BIN VALUE!‘);  END IF;  FORI 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;

 

oracle進位-10進位跟2進位互轉

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.