oracle如何建账号密码校验银行卡号正确性的oracle源代码

CREATE OR REPLACE FUNCTION checkBankCard(p_bankcard IN varchar2)RETURN varchar2 --正确时返回ok,否则返回正确的校验码IScurval NUMBER := 0;total NUMBER := 0;everyother NUMBER := 1;v_end number;BEGINIF (p_bankcard IS NULL) thenRETURN 'null';end IF;oracle账号FOR i IN reverse 1 .. (LENGTH(p_bankcard) - 1) loopcurval := SUBSTR(p_bankcard, i, 1);IF everyother = 1 theneveryother := 0;curval := curval * 2;IF (curval > 9) thencurval := curval - 9;end IF;elseeveryother := 1;end IF;total := total + curval;end loop;IF MOD(total, 10) = 0 THENv_end := 0;ELSEv_end:= 10 - MOD(total, 10);END IF;if to_char(v_end) = substr(p_bankcard,lengthb(p_bankcard),1) thenreturn 'ok';elsereturn to_char(v_end);end if;end;

 

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。