קוד SQL לבדיקת תקינות תעודת זהות
-
מוגש כשירות לציבור שוחרי SQL נקי:
USE [GlobalOptimum] GO /****** Object: UserDefinedFunction [dbo].[Validation_CheckIsraelID] Script Date: 08/02/2015 00:54:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date, ,> -- Description: <Description, ,> -- ============================================= CREATE FUNCTION [dbo].[Validation_CheckIsraelID] ( -- בודק מספרי תעודת זהות מספר עמותה תיק ניכויים וכדומה כמקובל במדינת ישראל @id nvarchar(10) ) RETURNS bit AS BEGIN --אם אין אורך של תשע ספרות זה משבש טובא את כל השיעור ועל כן יחזיר אפס if len(@id)<>9 return 0; --הספרה הימנית היא ספרת הביקורת declare @ControlNumberByPass TinyInt = Right(@id,1) -- הספרות כולם למעט הימנית ביותר הן גוף המספר declare @NumberWithoutControl nvarchar(10) = left(@id,(len(@id)-1)) declare @ControlNumberByCheck TinyInt = 0; declare @strNum nvarchar(20) = ''; declare @i int = 1; --צובר את הספרות במכפלות לפי משקלים WHILE @i <= len(@NumberWithoutControl) begin set @strNum += cast(Cast(SUBSTRING(@NumberWithoutControl,@i,1) As TinyInt) * (case when @i%2 = 0 then 2 else 1 end) as nvarchar); set @i+=1; end set @i = 1; --מחבר את הספרות שנוצרו WHILE @i <= len(@strNum) begin set @ControlNumberByCheck += Cast(SUBSTRING(@strNum,@i,1) As TinyInt) set @i+=1; end --מעדכן למספר המשלים למכפלת עשר מדוייקת set @ControlNumberByCheck = (10 - (@ControlNumberByCheck%10)) --מחזיר ערך מאומת על פי בדיקה האם ספרת הביקורת מתאימה RETURN (case when @ControlNumberByCheck=@ControlNumberByPass then 1 else 0 end) END GOפורסם במקור בפורום CODE613 ב08/02/2015 00:57 (+02:00)
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות