Menu
עברית Русский
מכללת פרקטיקיו
- מתחילים ללמוד חינם -
קורסי תכנות / סייבר / ניהול רשת

הכל על Stored Procedure

קורסים למנהלי רשת מסלול מנהלי רשת
עם התמחות בשרתי מיקרוסופט
מסלול סייבר והאקינג - Hacking מסלול תקשורת ואבטחת מידע
Cisco CCNA & FortiGate & Checkpoint
מומחה ווירטואליזציה
VMware & Hyper-V
מסלול לינוקס ו-DevOps מומחה ענן של אמזון - AWS מומחה ענן של מיקרוסופט - Azure מומחה ענן של גוגל - GCP מומחה שרתי SCCM - System Center
של מיקרוסופט לארגונים גדולים
קורסי תכנות מסלול Full Stack דוט-נט
יסודות התכנות
מסלול Full Stack דוט-נט
צד שרת - Backend
מסלול Full Stack דוט-נט
צד לקוח - Frontend
מסלול Full Stack Node.JS קורסי תכנות נוספים
Java / Python / PHP
מפתח אפליקציות - אנדרואיד - אייפון מפתח משחקי מחשב - Unity מפתח תוכנות לוונדוס - WinForms מסלול DBA - דטה אנליסט
התמחות במסדי נתונים – SQL
בדיקות תוכנה - QA בדיקות תוכנה - QA - אוטומציה בדיקות תוכנה - QA - בדיקות ידניות בדיקות תוכנה - QA - קורסים נוספים המלצות תלמידים על PracticU
סיכום על הכל על Stored Procedure

בשיעור זה לומדים הכל על Stored Procedure: יוצרים את הפרוצדורה הראשונה ומריצים אותה עם exec, משנים אותה עם alter procedure ומוחקים אותה עם drop procedure, בונים פרוצדורה שמכניסה נתונים באמצעות הרצה של פרוצדורה אחרת, מוסיפים פרמטר חובה ורואים מה קורה כשמריצים בלי לספק אותו, בונים פרוצדורה עם פרמטרים אופציונליים ופותרים את בעיית ה NULL בעזרת isnull, ומסיימים בפרמטר פלט מסוג output ובסימון פרוצדורה להידור מחדש עם sp_recompile.

נושאי הסיכום המוצגים בשיעור:
1. הפרוצדורה הראשונה: פותחים בהערה "-- Stored Procedure" וכותבים "create procedure Getemployees" ואחרי as שליפה של כל העמודות מטבלת העובדים. מריצים את הפרוצדורה בעזרת "exec Getemployees" ומקבלים את רשימת 14 העובדים, בדיוק כמו הרצת השאילתא עצמה, אבל עכשיו הלוגיקה שמורה בתוך אובייקט בעל שם במסד הנתונים ואפשר להריץ אותה שוב ושוב בשמה.
2. שינוי ומחיקה של פרוצדורה: משנים את הפרוצדורה בעזרת "alter procedure Getemployees" כך שהשליפה תחזיר "select firstname + ' ' + lastname , title", כלומר שרשור של השם הפרטי עם רווח ועם שם המשפחה ובנוסף את עמודת התפקיד, והתוצאה מציגה עמודה אחת משורשרת ולצידה את התפקיד. אחר כך מוחקים את הפרוצדורה מהמסד בעזרת "drop procedure Getemployees".
3. פרוצדורה שמכניסה נתונים: כותבים "create procedure GetFirstAndLast" ששולף שם פרטי ושם משפחה מטבלת העובדים, ומנסים להכניס את תוצאת ההרצה שלה אל טבלת העובדים עצמה. בניסיון הראשון יש טעות הקלדה בשם הפרוצדורה ומתקבלת השגיאה "Msg 102, Level 15, State 1, Line 4" עם ההסבר "Incorrect syntax near 'serFirstAndLast'.", כלומר שגיאת תחביר ליד השם המשובש. אחרי התיקון מריצים "insert into Employees(FirstName , LastName )" ואז "exec GetFirstAndLast", כלומר פקודת הוספה שמקור הנתונים שלה הוא הרצת פרוצדורה, והשורה נכנסת לטבלה בהצלחה.
4. פרוצדורה עם פרמטר: כותבים "create procedure EmpWithID @id int" שמקבלת פרמטר מספרי, ובגוף הפרוצדורה שליפה מטבלת העובדים עם "where EmployeeID = @id". מריצים אותה בלי לספק ערך ומקבלים את השגיאה "Msg 201, Level 16, State 4, Procedure EmpWithID, Line 0" עם ההסבר "Procedure or function 'EmpWithID' expects parameter '@id', which was not supplied.", כלומר הפרוצדורה מחייבת קבלת הפרמטר. מריצים אותה עם ערך בעזרת "exec EmpWithID 5" ומקבלים את פרטי העובד שמזההו 5, ובהרצה עם שם הפרמטר "exec EmpWithID @id = 4" מקבלים את פרטי העובד שמזההו 4.
5. פרוצדורה עם פרמטרים אופציונליים: לפני הכתיבה סוקרים את טבלת המוצרים שבה 77 שורות דרך פקודת Select Top 1000 Rows על הטבלה. כותבים "create procedure SP_prod" עם שני פרמטרים שמאותחלים ל NULL: "(@categoryid int = null ," ואז "@unitprice money = null)". בגוף הפרוצדורה שליפה מטבלת המוצרים עם "CategoryID = @categoryid" ואז "and UnitPrice > @unitprice", כלומר שני הסינונים מיושמים על ערך הפרמטר, ואם הפרמטר ריק הסינון מתנהג בצורה בלתי צפויה.
6. הרצות עם ובלי פרמטרים: ההרצה "sp_prod 1 , 12" מחזירה שלושה מוצרים מקטגוריה 1 שהמחיר שלהם גבוה מ 12, ואותה תוצאה בדיוק מתקבלת בהרצה לפי שמות הפרמטרים "sp_prod @categoryid = 1 , @unitprice = 12". ההרצה "sp_prod @unitprice = 12 , @categoryid = 1" מראה שכשמעבירים ערכים לפי שמות הפרמטרים סדר הכתיבה לא משנה. לעומת זאת ההרצה "sp_prod @categoryid = 1" בלי פרמטר המחיר מחזירה אפס שורות, כי פרמטר שלא קיבל ערך נשאר NULL, והשוואה של עמודת מחיר מול NULL לא מחזירה שום שורה.
7. פתרון בעזרת isnull: משנים את הפרוצדורה בעזרת "alter procedure SP_prod" ומחליפים את הסינונים בגרסה חכמה: "CategoryID = isnull(@categoryid , CategoryID )" ואז "and UnitPrice > isnull(@unitprice, 0)", כלומר אם הפרמטר ריק משתמשים בערך העמודה עצמה לסינון הקטגוריה ובאפס לסינון המחיר, וכך פרמטר ריק הופך בעצם ללא סינון. אחרי השינוי ההרצה "sp_prod @categoryid = 1" מחזירה 12 מוצרים מקטגוריה 1, והרצה בלי שום פרמטר מחזירה את כל 77 המוצרים בטבלה.
8. פרמטר פלט output: פותחים נושא חדש בהערה "--OUTPUT parameter" וכותבים "create procedure AvgProd" עם "@GetAvg int output", כלומר פרמטר שמיועד להחזיר ערך החוצה מהפרוצדורה. בגוף הפרוצדורה "select @GetAvg = AVG(unitprice)", כלומר הממוצע של עמודת המחיר נכנס לתוך הפרמטר. בצד הקורא מגדירים משתנה עם "declare @AvgProduct int", מאתחלים אותו עם "set @AvgProduct =0", מריצים את הפרוצדורה עם "exec AvgProd @AvgProduct output" כדי שהמשתנה יקבל את הערך, ומדפיסים אותו עם "print @AvgProduct".
9. שדרוג הפרמטר ל float והידור מחדש: משדרגים את הפרוצדורה עם "alter procedure AvgProd" כך שהפרמטר יוגדר "@GetAvg float output", ובהתאם משנים גם את המשתנה בצד הקורא ל "declare @AvgProduct float". עכשיו ההדפסה מציגה את הממוצע המדויק של עמודת המחיר והוא "28.8663". בסוף השיעור כותבים את ההערה "--REcompile" ומריצים "sp_recompile 'AvgProd'", ומתקבלת ההודעה "Object 'AvgProd' was successfully marked for recompilation.", כלומר הפרוצדורה סומנה להידור מחדש בהרצה הבאה שלה.

בסיום השיעור למדנו ליצור פרוצדורות עם create procedure ולהריץ אותן עם exec, לשנות אותן עם alter procedure ולמחוק אותן עם drop procedure, להכניס נתונים לטבלה מתוך הרצת פרוצדורה, להגדיר פרמטר חובה ולראות את שגיאת הפרמטר החסר כשמריצים בלעדיו, להעביר ערכים לפי סדר או לפי שמות הפרמטרים, לבנות פרמטרים אופציונליים ולטפל ב NULL עם isnull, להחזיר ערך מפרוצדורה בעזרת פרמטר output, ולסמן פרוצדורה להידור מחדש עם sp_recompile. השיעור הבא עוסק באינדקס - Clustered Index.SR928SP
סקר שוק נכון לתאריך – 01/09/2011

הסבר קצר על שיטת הלימוד אונליין

צילמנו בסרטונים את כל ההרצאות של הקורס, כי ללמוד בכיתה לא נוח וגם יקר.
קורס בכיתה עולה מעל מ-17 אלף ₪ ואצלנו בסרטונים רק 350 ש"ח לחודש.
אם משהו לא ברור בסרטון תמיד אפשר להתקשר למרצה ולדבר איתו ישירות בטלפון.
המרצה זמין גם בווטסאפ וגם בצ'אט באתר המכללה.


חשוב לציין שבסוף כל התלמידים, מכל המכללות, כולם ביחד ניגשים לאותה בחינה חיצונית של סיסקו / מיקרוסופט / לינוקס ומקבלים בדיוק אותה תעודה.
את החברות הגדולות האלו בכלל לא מעניין איפה ואיך למדת וכמה שילמת על הלימודים.
יש מבחן אחיד לכולם, המתבצע במרכז בחינות מורשה של חברת Pearson VUE. הם עושים את הבחינות בפועל עבור החברות הגדולות בשוק.
כל שבוע יש מבחן ומי שעובר אותו מקבל תעודת הסמכה בינלאומית.

לסיכום: יש מרכז בחינות מורשה בתל-אביב, שכולם מגיעים אליו מכל הארץ ועושים שם מבחני הסמכה הבינלאומיים ומי שעובר את המבחן מקבל את התעודה ולא חשוב להם איפה ואיך למדת.


מה לעשות אם לא מבינים משהו בסרט?

פשוט מאוד, מתקשרים למכללה ומדברים ישירות עם המרצה. אפשר גם להתכתב עם המרצה במייל או בווטסאפ או בצ'אט באתר.


האם יש לכם כיתות לימוד רגילות?

להשכיר כיתה + לשלם משכורת למרצה = 17 אלף ש"ח עלות הקורס לתלמיד.
אצלנו בסרטונים מקבלים אותו חומר לימוד
ואפילו יותר, כי אין מגבלה של זמן למרצה (כמו שיש בכיתה),
בנוסף מקבלים בדיוק אותה תעודה בינלאומית,
כי מבחן הוא מבחן אחיד לכולם המתבצע במרכז בחינות מורשה
והכי חשוב שמקבלים את אותם המרצים, שמלמדים בכיתה רגילה,
רק שצילמנו אותם בסרטונים
והמחיר בסרטונים רק 350 ש"ח ולא 17 אלף כמו בכיתה רגילה.



קיימים במכללה שני מסלולי לימוד:
  1. מסלול לימוד חופשי, בלי תעודה, להעשרת ידע כללי.
    מסלול לימוד חופשי, מתאים בעיקר למי שעובד בתחום וכבר יש לו תעודות והוא לא רוצה עוד מבחנים ותעודות.

  2. מסלול עם תעודה - מתאים בעיקר לתלמידים חדשים המעוניינים בקורס מסודר,
    הכולל הגשת עבודות ופרוייקט גמר. מסלול זה מעניק בסיומו תעודת מקצוע בינלאומית.
    למעשה ההבדל היחיד בין שני המסלולים זה פרויקט גמר בסוף.
    אם מגישים את פרויקט גמר - מקבלים תעודה.
    בדיקת פרויקט גמר והנפקת תעודה כרוכים בתשלום נוסף, כפי שכתוב בדף ההרשמה.

בסיום קורס ניתן לקבל תעודות הבאות:
1. תעודה של המכללה - מותנה בהגשת פרוייקט גמר בסוף הקורס
2. תעודת הסמכה בינלאומית של מיקרוסופט העולמית - מותנה במעבר מוצלח של מבחן הסמכה חיצוני של מיקרוסופט (מבחן זה מתבצע כל שבוע במרכז בחינות מורשה בתל-אביב)


מידע כללי:
1. חומר הלימוד מורכב ממאגר עצום ומסודר מאוד של סרטים מקצועיים, הניתנים לצפיה מהבית. מאגר זה כולל הרצאות מוקלטות בעברית בצורה מסודרת ע"י המרצים הטובים ביותר. רשימת הסרטים המלאה נמצאת בתפריט בצד ימין.
2. כל סטודנט במכללה מקבל שם וסיסמה לצורך גישה לשרת הקבצים שלנו.
השרת מכיל את כל התוכנות הדרושות ללימוד וכן חומר עזר
3. הקורסים מועברים בהתאם לסילבוסים של החברות המובילות: Microsoft, Cisco