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

פונקצית Inline table

קורסים למנהלי רשת מסלול מנהלי רשת
עם התמחות בשרתי מיקרוסופט
מסלול סייבר והאקינג - 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
סיכום על פונקצית Inline table

בשיעור זה לומדים ליצור פונקציה מחזירת טבלה מסוג Inline: יוצרים פונקציה בשם CustOrders שמקבלת קוד לקוח ומחזירה טבלה ובה ההזמנות של אותו לקוח, רואים איך חיבור חלון השאילתא לבסיס הנתונים הלא נכון גורם לשגיאה בעת היצירה, קוראים לפונקציה מתוך select, רואים את השגיאה המתקבלת כשלא מעבירים לה ארגומנט, ומשנים אותה בעזרת ALTER ו isnull כך שהעברת null מחזירה את כל השורות.

נושאי הסיכום המוצגים בשיעור:
1. רקע ופתיחת סייר התבניות: השיעור נפתח עם שאילתת הצירוף המוכרת על הטבלאות Customers ו Orders, שמציגה את שם החברה, שם איש הקשר, קוד הלקוח ותאריך ההזמנה עבור הלקוח VINET, ומתקבלות חמש שורות שכולן של החברה Vins et alcools Chevalier עם איש הקשר Paul Henriot, מהתאריך 1996-07-04 ועד התאריך 1997-11-12. לאחר מכן פותחים את סייר התבניות Template Explorer, מרחיבים בו את התיקייה Function ורואים את רשימת התבניות ליצירת פונקציות מכל הסוגים, ובוחרים בה "Create Inline Table-valued Function".
2. מבנה התבנית ועיצובה: התבנית נטענת לחלון שאילתא חדש עם בלוק הערות המתאר את מטרתה ועם שלד של פונקציה מחזירת טבלה שבו מצייני המקום מוקפים בסוגריים משולשים. מחליפים את מציין המקום של השם וכותבים "CREATE FUNCTION CustOrders (@custID nchar(5))", כלומר פרמטר אחד בשם custID מסוג nchar באורך חמישה תווים, בהתאמה לסוג עמודת CustomerID בטבלת Customers. את גוף התבנית מחליפים בשורות "RETURNS TABLE" ואחריהן "AS RETURN", כלומר הפונקציה אינה מצהירה מראש על עמודות החזרה, אלא מחזירה ישירות את תוצאת השאילתא שנכתבת בתוך הסוגריים שאחרי RETURN.
3. גוף הפונקציה: בתוך הסוגריים שאחרי RETURN מדביקים את שאילתת הצירוף מהפתיחה: "select Customers.CompanyName ,Customers.ContactName," ואחריה "Customers.CustomerID, orders.OrderDate", ואז "from Customers, Orders", ואז "where Customers.CustomerID = Orders.CustomerID", ובשורה האחרונה "and Customers.CustomerID = @custID", אחרי שמחליפים את המחרוזת VINET שהיתה בשאילתא המקורית בפרמטר של הפונקציה. כך הפונקציה מקבלת קוד לקוח ומחזירה טבלה ובה כל ההזמנות של אותו לקוח.
4. שגיאה בגלל בסיס נתונים לא נכון: מריצים את בלוק היצירה ומתקבלת השגיאה "Msg 208, Level 16, State 1, Procedure CustOrders, Line 11" ואחריה ההודעה "Invalid object name 'Customers'.", כלומר הטבלה Customers אינה קיימת. הסיבה היא שחלון השאילתא מחובר לבסיס הנתונים master ולא ל Northwind, דבר הניכר בכותרת החלון ובשורת המצב, ומתוך master אין גישה לטבלאות של Northwind בשמן הפשוט.
5. מעבר ל Northwind והרצה מוצלחת: מחליפים את בסיס הנתונים של החיבור בחלון השאילתא ל Northwind ומריצים שוב, והפעם היצירה עוברת בהצלחה. כעת הפונקציה CustOrders קיימת בבסיס הנתונים Northwind ומופיעה בתיקיית הפונקציות המחזירות טבלה Table-valued Functions.
6. קריאה לפונקציה: פותחים חלון שאילתא חדש המחובר ל Northwind וכותבים "select * from CustOrders('VINET')" ומריצים, ומתקבלות חמש שורות שכולן של הלקוח VINET, עם החברה Vins et alcools Chevalier ואיש הקשר Paul Henriot, ותאריכי הזמנה 1996-07-04, 1996-08-06, 1996-09-02, 1997-11-11 ו 1997-11-12.
7. קריאה ללא ארגומנט ושגיאתה: מוחקים את הארגומנט מהסוגריים ומריצים "select * from CustOrders()", ומתקבלת השגיאה "Msg 313, Level 16, State 3, Line 1" ואחריה ההודעה "An insufficient number of arguments were supplied for the procedure or function CustOrders.", כלומר לא הועבר מספיק ארגומנטים לפונקציה. פונקצית inline table מחייבת העברת ערך לפרמטר שהוגדר לה בעת הקריאה אליה.
8. הרצה חוזרת של היצירה ומעבר ל ALTER: מריצים שוב את בלוק היצירה ומתקבלת שגיאה המודיעה שכבר קיים עצם בשם זה בבסיס הנתונים, בדומה לשיעור הקודם, כי הפונקציה CustOrders כבר נוצרה בו. לכן מחליפים את הפקודה CREATE ב "ALTER FUNCTION CustOrders (@custID nchar(5))", המשנה את הפונקציה הקיימת במקום לנסות ליצור אותה מחדש.
9. שינוי התנאי בעזרת isnull: משנים את שורת הסינון האחרונה ל "and Customers.CustomerID = isnull(@custID, Customers.CustomerID)". הפקודה isnull מחזירה את הערך הראשון אם הוא אינו null ואחרת את הערך השני, ולכן כשמעבירים קוד לקוח אמיתי התנאי ממשיך לסנן לפי אותו לקוח, וכשמעבירים null ההשוואה נעשית בין עמודת CustomerID לעצמה וכל השורות עוברות את התנאי. מריצים את השינוי והוא עובר בהצלחה.
10. בדיקה עם null ומיון התוצאה: חוזרים לחלון השאילתא של הקריאה לפונקציה, כותבים "select * from CustOrders(null)" ומריצים, ומתקבלות 830 שורות, כלומר כל ההזמנות של כל הלקוחות, החל מהלקוח VINET. מוסיפים בשורה נפרדת "order by 3", הממיין לפי העמודה השלישית של התוצאה שהיא קוד הלקוח, ומריצים שוב, והשורות מוצגות ממוינות לפי קוד הלקוח.

בסיום השיעור למדנו ליצור מסייר התבניות פונקציה מחזירת טבלה מסוג Inline בשם CustOrders, להדביק את שאילתת הצירוף לתוך גוף הפונקציה ולהחליף את הסינון הקבוע בפרמטר, להבין מהשגיאה המתקבלת שחלון השאילתא מחובר לבסיס הנתונים הלא נכון, לקרוא לפונקציה מתוך select עם ארגומנט ולראות את השגיאה המתקבלת כשאין ארגומנט, לעבור ל ALTER לאחר הרצה כפולה של היצירה, לשנות את התנאי בעזרת isnull כך שהעברת null תחזיר את כל השורות, ולמיין את התוצאה לפי מספר עמודה. השיעור הבא עוסק בפונקצית Multi Statement.SR933ITF
סקר שוק נכון לתאריך – 01/09/2011

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

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


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

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


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

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


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

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



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

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

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


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