מסכת קלט ב-SQL Server

04/08/2012

2 תגובות

נפתח בהנמכת ציפיות- אין מסכת קלט ב-SQL Server: הוא אינו מספק לנו ממשק משתמש ואין זה מתפקידו לזעוק חמס אם המשתמש מקליד אותיות במקום ספרות וכו'. זאת ועוד- יכולותיו בניתוח מחרוזות טקסט מוגבלות, ובמקרה הצורך יש לכתוב פרוצדורות מתאימות ב-Clr..
עדיין, ניתן לעשות הרבה מאוד גם בעזרת המעט שהמערכת מציעה, כל זאת כאשר אנו מצויידים בתושיה, יצירתיות ורוח קרב!
דוגמה לבעייה- יש לבדוק האם מחרוזות מסויימת עונה לתנאי AAA999999AA9, כלומר, צירוף של אותיות וספרות כאשר A מייצגת אות ו-9 ספרה:

Declare @Sn Varchar(Max)='[0-9]'; --digit

Declare @St Varchar(Max)='[a-zA-Z]'; --letter

 

Select  Case When 'AAA999999AA9' Like @St+@St+@St+@Sn+@Sn+@Sn+@Sn+@Sn+@Sn+@St+@St+@Sn Then 1 Else 0 End;

Select  Case When 'Abc123456DE7' Like @St+@St+@St+@Sn+@Sn+@Sn+@Sn+@Sn+@Sn+@St+@St+@Sn Then 1 Else 0 End;

Select  Case When 'Abc123456DE'  Like @St+@St+@St+@Sn+@Sn+@Sn+@Sn+@Sn+@Sn+@St+@St+@Sn Then 1 Else 0 End;

clip_image002

נכון- יש מגבלות ובעיות (כיצד נייצג רצף של 0-3 ספרות?),

אבל הנ"ל עובד.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

2 תגובות

  1. נתן06/08/2012 ב 14:55

    תודה

    הגב
  2. פלג26/08/2012 ב 15:26

    נראה לי מסובך ומיותר, יותר נכון להשתמש במקרה הזה ב CLR עם ביטויים רגולרייים.

    הגב