產生十六進製制的流水號

2021-12-29 20:31:28 字數 1360 閱讀 8999

產生十六進製制的流水號

需求如下:

求乙個function, 用 0~9,a~f  這幾個數字及字母,產生流水號,,產生的資料如下 格式:

00000,00001,00002,00003,00004,00005,00006,00007,00008,00009,0000a,0000b,0000c,0000d,0000e,0000f,00010....

解決如下:  www.2cto.com  

1、新建產生十進位制的序列號seq_hex

[sql] 

create sequence seq_hex  

minvalue 0  

maxvalue 10000000  

start with 0  

increment by 1  

cache 20  

cycle  

order;  

www.2cto.com  

2、寫乙個函式,函式的作用是返回十六進製制的序列號

[sql] 

create or replace function gethexsequence  

return varchar2  

as  

n_shang number(10);  

n_yushu number(10);  

hexres   varchar2(10);  

begin  

n_shang :=seq_hex.nextval;  

if n_shang = 0 then  

return '00000';  

end if;  

while n_shang>0  loop  

n_yushu:=n_shang mod 16;  

select concat(decode(n_yushu,'10','a','11','b','12','c','13','d','14','e','15','f',n_yushu),hexres) into hexres from dual;  

n_shang := trunc(n_shang/16);  

end loop;  

return lpad(hexres,5,0);  

end;  

www.2cto.com  

3、在程式中呼叫,產生十六進製制的序列號

[sql] 

sql> select  gethexsequence from dual;  

gethexsequence  

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

000ad  

上述解決方法不一定是最優的,希望拋磚引玉,看有沒有更好的解決方案。

oracle產生十六進製制數

1 建立seq,產生十進位制的序列號 sql code?1 2 3 4 5 6 7 8 createsequenceseq hex minvalue 0 maxvalue 10000000 startwith0 incrementby1 cache 20 cycle order 2 寫乙個函式,返回...

Excel輸入十六進製制數,以及十六進製制運算

網上覆制來複製去的連個靠譜答案都沒有.f k 所以無奈自己探索出來了 單元格 a1文字值 a2進製值 輸入內容 fefe oct2hex hex2oct a29 由於單元格沒有提供進製格式,所以填入的值實際上是文字值,但是轉換函式卻可以把文字值視為進製值拿去轉換 所以我們兩次轉換就能得到真正的進製數...

進製轉換 十六進製制轉八進位制 十六進製制轉十進位制

在十六進製制轉為八進位制的過程中包含了將十六進製制轉化為二進位制以及將二進位制轉化為八進位制!我自己測試是沒什麼問題,但是在藍橋杯官網的測試系統就顯示執行錯誤qwq 不知道為什麼 附 include includeusing namespace std int main if len2 i 3 2 ...