日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

主键字母自动生成函数

發(fā)布時(shí)間:2025/3/11 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 主键字母自动生成函数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
-- 動(dòng)態(tài)生成字母方式主鍵,A-Z 大于Z自動(dòng)進(jìn)位【26進(jìn)制數(shù)值表示】-- 參數(shù):動(dòng)態(tài)查詢表和主鍵列 create or replace function charkey (tabName char, pkName char) return char asv_key varchar2(4); -- 表中查詢出當(dāng)前主鍵列最大值v_char varchar2(4) := ''; -- 輸出用變量v_len number(1); -- 查詢出最大值字符串長(zhǎng)度v_i number(1); -- 循環(huán)控制變量v_c char(1); -- 提取單個(gè)字符變量v_flag number(1) := 1; -- 是否'進(jìn)位'變量v_count number; -- 查詢表中記錄總數(shù) begin-- 查詢表中記錄數(shù)execute immediate 'select count(1) from ' || tabName into v_count;-- 如果表中沒(méi)有記錄,則返回'A'if (v_count = 0) then v_char := 'A';return v_char;end if;-- 獲取指定表中主鍵列當(dāng)前最大值execute immediate 'select ' || pkName || ' from ' ||'(select rownum r, t.' || pkName || ' from ' ||'(select ' || pkName || ' from ' || tabName || ' order by length(' || pkName || ') desc, ' || pkName || ' desc) t) where r < 2'into v_key;-- 字符串長(zhǎng)度v_len := length(v_key);-- 循環(huán)控制變量v_i := v_len;-- 從最后一個(gè)字符開(kāi)始,向前循環(huán)遍歷while v_i >= 1 loopv_c := substr(v_key, v_i, 1);-- 如果需要進(jìn)位,當(dāng)前字符+1if(v_flag = 1) thenv_c := chr(ascii(v_c)+1);v_flag := 0;end if;-- 當(dāng)前字符超出上限if( ascii(v_c) > ascii('Z')) thenv_c := 'A';v_flag := 1;end if;v_char := v_c || v_char;v_i := v_i - 1;end loop;-- 如果遇到ZZ情況,需要補(bǔ)充一位'A'if(v_flag = 1) thenv_char := 'A' || v_char;end if; return v_char; end;-- 測(cè)試表 create table testtab (id varchar2(4) primary key,val number(4) );-- 測(cè)試通過(guò)函數(shù)動(dòng)態(tài)生成主鍵插入數(shù)據(jù) declarev_count number(9) := 1; beginwhile v_count <= 30 loopinsert into testtab values(charkey('testtab','id'), 1); v_count := v_count + 1;end loop; end;select * from testtab;

總結(jié)

以上是生活随笔為你收集整理的主键字母自动生成函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。