oracle 函式15位身份證號轉18位身份證號,同時可以參考此**編寫身份證校驗函式
/*15位身份證轉18位*/
function get_newcert(
oldcert in
varchar2
)return
varchar2
isnew_cert varchar2
(20)
;old_cert varchar2
(17)
;i number
;sumid number
;checkid varchar2
(34)
;endid varchar2
(11)
;begin
endid :
='10x98765432'
;checkid :
='0709100508040201060307091005080402'
;sumid :
=0;old_cert :
=substr
(oldcert,1,6)||
'19'||
substr
(oldcert,7,9);if
length
(oldcert)
=15 and fhts_date.is_date(
substr
(old_cert,7,8)
)=0 then
for i in 1.
.17loop
sumid:
=sumid+
to_number
(substr
(old_cert,i,1))*
to_number
(substr
(checkid,i*2-1,2));
end loop;
new_cert:
= old_cert|
|substr
(endid,
mod(sumid,11)
+1,1)
;else
new_cert:
=oldcert;
endif
;return new_cert;
end get_newcert;
15位身份證補全為18位身份證演算法
一 15位身份證和18位身份證號碼結構介紹 要進行身份證號碼的驗證,首先需要了解我國身份證號碼的編碼規則。我國身份證號碼多由若干位數字或者數字與字母混合組成。早期身份證由15位數字構成,這主要是在1980年以前發放的身份證,後來考慮到千年蟲問題,因為15位的身份證號碼只能為1900年1月1日到199...
身份證15位公升18位
六位數字位址碼 八位數字出生日期碼 三位數字順序碼 順序碼的奇數分給男性,偶數分給女性 一位數字校驗碼 校驗碼是根據前面十七位數字碼,按照iso 7064 1983.mod 11 2校驗碼計算出來的檢驗碼 1 多了年數 第6位開始多了19表示完整的出生日期 2 多了最後一位校驗碼 ai wi mod...
身份證15轉18位
身證份15位轉18位 測試用例用 顯示部分系統人為修改,create function f cid15to18 sfz char 18 returns char 18 asbegin declare osfz varchar 18 declare i int,ai int,wi int,sum in...