content top
סקירת הפונקציה STUFF

סקירת הפונקציה STUFF

1. הקדמה:

הפונקציה STUFF מכניסה מחרוזת לתוך מחרוזת. היא מוחקת במחרוזת הראשונה מספר תווים החל ממקום מסוים שסופקו לה כפרמטר ומכניסה החל ממקום זה את המחרוזת השנייה.

2. תחביר:

STUFF ( character_expression , start , length , replaceWith_expression )

2.1. character_expression – יכול להיות קבוע, משתנה או עמודה של תווים או נתונים בינאריים.

2.2. start – משתנה שלם המציין את המיקום במחרוזת הראשונה של מחיקת התווים והכנסת המחרוזת השנייה משם. אם פוזיציית ההתחלה שלילית או נקודת ההתחלה ארוכה מאורך המחרוזת – התוצאה של הפונקציה תהיה null.

2.3. length – משתנה שלם המציין את מספר התווים שנמחקים. אם ערך הפרמטר גדול מאורך המחרוזת הראשונה, המחיקה תתבצע עד התו האחרון במחרוזת.

2.4. אם הפרמטר שלילי – התוצאה של הפונקציה תהיה null.

הפרמטרים start ו-length הם מטיפוס bigint

2.5. replaceWith_expression – כמו הפרמטר הראשון, יכול להיות קבוע, משתנה או עמודה של תווים או נתונים בינאריים. ביטוי זה מחליף <length> תווים בביטוי הראשון החל מהפוזיציה <start>.

3. מה מחזירה הפונקציה?

מחזירה מחרוזת, אם הפרמטר character_expression מכיל תווים נתמכים.

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

4. דוגמאות:

דוגמא 4.1:

select stuff('uvwxyz', 3, 2, '123456');

GO

--התוצאה uv123456yz

החל מהמקום השלישי נמחקו שני תווים והוכנסה שם  המחרוזת '123456'

דוגמא 4.2:

select stuff('uvw', 4, 2, '12');

GO

4 גדול יותר מאורך המחרוזת 'uvw' שהוא 3 – הערך שחוזר null

דוגמא 4.3:

select stuff('uvwxyz', 2, 6, '1234');

GO

--התוצאה u1234

אורך המחרוזת למחיקה – 6 גדול יותר מאורך המחרוזת החל מהמקום השני  'vwxyz'שהוא 5 ולכן נמחקים התווים מהמקום השני עד במקום השישי ומכניסים שם את המחרוזת '1234'

דוגמא 4.4:

Declare @output char(9)

select @output =stuff('uvwxyz', 3, 2, '123456');

GO

באורך 10 גדול מאורך השדה המקבל – 9 ולכן תוצג שגיאה. 'uv123456yz' התוצאה


2 תגובות על “סקירת הפונקציה STUFF”

  1. מאת דוד יצחק:

    מצוין
    תוספת קטנה :
    הפונקציה STUFF
    אם מחרוזת ריקה (") מוגדרת עבור המחרוזת השנייה של הפונקציה STUFF , הפונקציה STUFF מוחקת את המחרוזת שמיקומה ההתחלתי מוגדר ע"י הארגומנט start וממשיכה למחוק תווים . מספר התווים הנמחק מודר ע"י הפרמטר length . דוגמא :
    SELECT STUFF ( 'My cat"s name is X. Have you met him?', 18, 8, " );
    במקום 18 המחרוזת X . ממקום זה ואילך ימחקו 8 תווים . לכן הפלט :
    My cat's name is you met
    David Yitzhak | Oracle ILOUG forum administrator
    http://www.iloug.org.il/DBA_NorthForum.php
    Information System BSC , MBA , ME (System Engineering)

כתיבת תגובה

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

nineteen − sixteen =