SQL फ़ंक्शन के साथ SEDOL प्रारूप की जाँच करें
SQL सर्वर में SEDOL संख्या स्वरूप की जाँच करने के लिए एक फ़ंक्शन बनाएँ
संदर्भ
यह कोड बाहरी स्रोतों से आने वाले डेटा को शुद्ध करने के लिए एक आयात दिनचर्या के हिस्से के रूप में बनाया गया था, जहां सभी प्रकार के वर्ण थे जो वहां नहीं होने चाहिए थे।
यह एक SEDOL के प्रारूप की जाँच करता है। यह लिंक पर विकिपीडिया लेख पर प्रलेखन का उपयोग करके SQL कोड का विस्तार किया गया है।
यह तीन लिंक किए गए लेखों का हिस्सा है जो ISIN, SEDOL और CUSIP पहचानकर्ताओं की जाँच करेगा।
SQL
ALTER FUNCTION CheckSEDOL(@SEDOL NVARCHAR(20))RETURNS INT AS BEGINDECLARE @Check INTIF RIGHT(@SEDOL,1) NOT BETWEEN '0' AND '9' BEGINSET @Check=-1RETURN @CheckENDIF PATINDEX('%[^0-Z]%',@SEDOL)>0 BEGINSET @Check=-3RETURN @CheckEND
DECLARE @Sum INT=0,@Letter INT=1,@Char VARCHAR(1)WHILE @Letter BEGINSET @Char=SUBSTRING(@SEDOL,@Letter,1)SET @Sum=@Sum+((SELECT (CASE WHEN @Char BETWEEN '0' AND '9' THEN @Char ELSE ASCII(UPPER(@Char))-55 END))*(CASE @Letter WHEN 1 THEN 1 WHEN 2 THEN 3 WHEN 3 THEN 1 WHEN 4 THEN 7 WHEN 5 THEN 3 WHEN 6 THEN 9 WHEN 7 THEN 1 ELSE 0 END))SET @Letter=@Letter+1ENDSET @Sum=(10 - @Sum%10)% 10
IF LEN(@SEDOL)<>7 BEGINSET @Check=-4RETURN @CheckEND
IF RIGHT(@SEDOL,1) BETWEEN '0' AND '9' BEGINSET @Check =(CASE WHEN RIGHT(@SEDOL,1)=@Sum THEN 1 ELSE 0 END)ENDRETURN @CheckEND
चेतावनी!
यह केवल SEDOL के प्रारूप की जाँच करेगा, न कि यह वास्तव में मौजूद है या नहीं।
अग्रिम पठन
एक आईएसआईएन जांचें
Check a CUSIP