אורקל לפרק

Wrql Lprq



Unicode הוא אחד מתקני הקידוד המשפיעים והחזקים ביותר בעולם הפיתוח. Unicode מייצג תווים כמעט מכל השפות על ידי קידוד התווים בקוד שלם בין 0 ל-0x10ffff.

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







במדריך זה, תלמד כיצד להשתמש בפונקציית decompose() של מסדי נתונים של Oracle כדי להמיר נתון לייצוג ה-Unicode שלו.



Oracle Decompose Function תחביר

תחביר הפונקציה הוא כפי שמוצג להלן:



DECOMPOSE( מחרוזת [, { 'CANONICAL' | 'COMPATIBILITY' } ] )

הפונקציה מקבלת שני ארגומנטים:





  1. חוּט - זה מייצג את המחרוזת שיש להמיר להרכב Unicode. הערך של פרמטר זה יכול להיות CHAR, VARCHAR, NCHAR, NVARCHAR2, CLOB ו-NCLOB.
  2. קנונית – הגדרת הערך ל-canonical מאפשרת לפונקציה לבצע פירוק קנוני המאפשר חיבור מחדש למחרוזת המקורית. אם לא צוין, הפונקציה תשתמש בפרמטר זה כברירת מחדל.
  3. תְאִימוּת - אם הערך מוגדר לתאימות, הפונקציה תבצע את הפירוק במצב תאימות. מצב זה אינו מאפשר הרכבה מחדש למחרוזת המקורית. השתמש באפשרות זו בעת פירוק תווי קטאקנה ברוחב חצי ורוחב מלא.

כדאי לזכור שסוגי CLOB ו-NCLOB נתמכים באמצעות המרה מפורשת.

דוגמה לשימוש בפונקציה

הדוגמאות הבאות מדגימות כיצד להשתמש בפונקציה decompose() של מסדי נתונים של Oracle.



דוגמה 1 - שימוש בפונקציות בסיסיות

הקוד הפשוט הבא מראה כיצד להשתמש בפונקציית decompose כדי לפרק מחרוזת לייצוג Unicode שלה.

select decompose('Hello') כפלט מ-dual;

הפעלת הקוד למעלה אמורה להחזיר את מחרוזת הפלט כ:

דוגמה 2 - קבלת קוד ASCII

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

בחר asciistr(decompose('你好')) כפלט מ-dual;

תְפוּקָה:

דוגמה 3 - שימוש בפונקציה עם תווים שאינם Unicode

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

הדגמה לדוגמה היא כפי שמוצג:

select decompose('l') כפלט מ-dual;

תוֹצָאָה:

אותו מקרה חל גם בעת שימוש בפונקציית asciistr.

בחר asciistr(('l')) כפלט מ-dual;

תְפוּקָה:

דוגמה 4 - שימוש בפונקציה עם ארגומנט NULL

הפונקציה תחזיר ערך NULL אם ערך הקלט הוא NULL.

דוגמא:

בחר (NULL) כפלט מתוך כפול;

תְפוּקָה:

דוגמה 5 - קריאה לפונקציה עם פרמטרים חסרים

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

בחר () כפלט מ-dual;

תוֹצָאָה:

שגיאת SQL: ORA-00938: אין מספיק ארגומנטים לפונקציה
00938. 00000 -  'לא מספיק ארגומנטים לפונקציה'

סיכום

במדריך זה, למדת כיצד להשתמש בפונקציית decompose() של Oracle כדי להמיר מחרוזת לייצוג Unicode שלה.