oracle 自定義身份證15位轉18位 函式

2021-05-27 13:03:55 字數 1165 閱讀 9417

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...