כדי להגדיר את המקודד של Mainframe Connector, מוסיפים את ההגדרה הנדרשת בקובץ JSON.
הקובץ הזה נקרא קובץ התצורה של Transcoder. צריך להגדיר את ההגדרות האישיות כמו שמפורט בקטע הגדרות אישיות.
הפקודות qsam encode ו-qsam decode משתמשות בקובץ התצורה של הטרנסקודר כדי לבצע המרת נתונים.
בדף הזה מתוארות הדרכים השונות שבהן אפשר להגדיר את המקודד של Mainframe Connector.
הגדרות אישיות
האובייקט Configuration הוא הבסיס של הגדרת ה-Transcoder.
הוא מכיל את כל אפשרויות ההגדרה של הטרנסקודר.
| ייצוג ב-JSON |
|---|
{ "defaults": object ( |
| שדות | |
|---|---|
defaults |
צריך לציין את משני השדות שמוגדרים כברירת מחדל לארכיטיפים של Cobol. |
field_overrides |
מציינים את השדות שרוצים לשנות. |
field_suffixes |
מציינים סיומות לשדות. |
header_records_to_skip |
מציינים את מספר הרשומות הראשונות שרוצים לדלג עליהן. |
record_filter_condition |
מציינים תנאי סינון לרשומות. המסנן מבוסס על קבוצת משנה של Common Expression Language (CEL) ותומך באפשרויות הבאות:
דוגמה:
|
schema_validation_mode |
מציינים את מצב אימות הסכימה. |
transformations |
מציינים טרנספורמציות של שדות. |
DefaultsSection
אפשר להשתמש באובייקט DefaultsSection כדי לציין שינויים כברירת מחדל לפי סוגי COBOL.
הם מוחלים לפני שינויים בסיומת או שינויים ידניים.
| ייצוג ב-JSON |
|---|
{ "alpha_numeric_display": object ( |
| שדות | |
|---|---|
alpha_numeric_display |
מציינים את ברירות המחדל לשדות אלפאנומריים (PIC X). |
binary |
מציינים את ברירות המחדל לשדות של מספרים בינאריים (COMP). |
dbcs |
ברירת המחדל לשדות dbcs (DISPLAY-1). |
hexadecimal_floating_point |
ברירת המחדל לשדות של נקודה צפה (floating point) בבסיס הקסדצימלי (COMP-1, COMP-2). |
national |
מציינים את ברירות המחדל לשדות הלאומיים (PIC N). |
numeric_display |
צריך לציין את ברירות המחדל לשדות של תצוגה מספרית (עשרוני מוגדר אזור). |
packed_decimal |
מציינים את ברירות המחדל לשדות של מספרים עשרוניים דחוסים (COMP-3). |
utf8 |
מציינים את ברירות המחדל לשדות UTF-8 (PIC U). |
FieldModifier
משנה שדה מאפשר לשנות את הקידוד או הפענוח של שדה ספציפי. חשוב לזכור שלא כל המגבילים יכולים לחול על כל השדות. למידע נוסף, עיינו במסמכי התיעוד של מגדירי הגישה הספציפיים.
| ייצוג ב-JSON |
|---|
{ "binary": object ( |
| שדות | |
|---|---|
binary |
ההגדרה הזו מבטלת את הגדרת ברירת המחדל של שדות מספריים בינאריים. |
bytes |
השדה מטופל כרצף גולמי של בייטים, תוך התעלמות ממידע קודם על הסוג. |
chain |
משרשר כמה משתנים כדי להחיל אותם ברצף. |
decode_as_null |
מגדיר איך לפענח ערכי null. |
encode_null_as |
מגדיר איך צריך לקודד ערכי null. |
filler |
השדה לא נכלל בעיבוד ובפלט. |
format_date |
עיצוב שדה מחרוזת כתאריך. |
format_timestamp |
עיצוב שדה מחרוזת כחותמת זמן. |
hfp |
מפרש את השדה כמספר בשיטת נקודה צפה (HFP) בבסיס הקסדצימלי. |
null_if |
הגדרת השדה כ-null באופן מותנה, על סמך הערך של שדה אחר. |
null_if_empty |
מגדיר את השדה כ-null אם התוכן שלו נחשב ריק. |
null_if_invalid |
אם מתרחשת שגיאה בהמרת קידוד, השדה מוגדר כ-null כדי למנוע זליגת רשומות. |
packed_decimal |
המדיניות הזו משנה את הגדרת ברירת המחדל של שדות עשרוניים דחוסים. |
string |
המדיניות הזו מבטלת את הגדרות ברירת המחדל של שדות מחרוזת. |
varlen |
מגדירים את הרשומה כשדה באורך משתנה. |
zoned_decimal |
מבטלת את הגדרת ברירת המחדל של שדות עשרוניים עם אזור. |
בינארי
התעלם מכל משני המצב הקודמים והתייחס לשדה הזה כמספר בינארי.
| ייצוג ב-JSON |
|---|
{ "signedness": enum ( |
| שדות | |
|---|---|
signedness |
הסימן של המספר. |
בייטים
השדה מטופל כרצף גולמי של בייטים. המשתנה הזה מבטל כל מידע קודם על סוג הנתונים, וכך נתוני הבייטים הגולמיים של השדה נשמרים כמו שהם, בלי קידוד תווים ספציפי או פרשנות מספרית. אפשר להחיל את המאפיין הזה על כל שדה, בלי קשר לסוג או לגודל המקורי שלו.
מציינים אובייקט JSON ריק באופן הבא:
| ייצוג ב-JSON |
|---|
{ |
DecodeAsNull
מגדירה איך המערכת מפרשת ערכי null במהלך תהליך הפענוח. מכיוון ש-COBOL לא תומך בערכי null באופן מקורי, הפרמטר הזה מציין אילו ערכים צריכים להיחשב כ-null.
| ייצוג ב-JSON |
|---|
{ "hex_bytes": string, "values": string |
| שדות | |
|---|---|
hex_bytes |
רשימה של ייצוגים הקסדצימליים של בייט בודד.
כששדה מכיל חזרות על אחד מהבייטים האלה, הוא מטופל כ-null.
לדוגמה, שימוש ב- |
values |
רשימה של ייצוגי מחרוזות. אחרי הפענוח הראשוני של השדה לצורת המחרוזת שלו, אם תוכן השדה תואם לאחד מהערכים האלה, הוא יטופל כ-null. |
EncodeNullAs
מגדיר איך ערכי null מיוצגים במהלך תהליך הקידוד.
| ייצוג ב-JSON |
|---|
{ "hex_byte": string, "value": string |
| שדות | |
|---|---|
hex_byte |
מקודדים את רצף הבייטים הספציפי הזה (מיוצג כמחרוזת הקסדצימלית) כשערך המקור הוא null. לדוגמה, |
value |
מקודדים את הערך הספציפי הזה כשערך המקור הוא null. מוודאים שהמחרוזת תקינה לסוג השדה. |
Filler
מציין שהמערכת תתעלם משדה מסוים במהלך העיבוד. השדה לא יפוענח מהקלט או יקודד לפלט, והוא לא ייכלל בסכימה ובטבלת הנתונים שיתקבלו במהלך הפענוח. אפשר להחיל את המגביל הזה על כל שדה שיש לו גודל סטטי ידוע.
מציינים אובייקט JSON ריק באופן הבא:
| ייצוג ב-JSON |
|---|
{ |
FormatDate
אתם יכולים להמיר את הפורמט של שדה מספרי או שדה מחרוזת לתאריך, באמצעות אחד מהפורמטים הנתמכים. אפשר להחיל את המגביל הזה רק על שדות עם גודל. לפני העיצוב, שדות מספריים מומרים באופן דינמי לייצוג המחרוזת שלהם (לא כולל סימנים). ההנחה היא שערכי התאריכים חיוביים. תאריכים מספריים שליליים לא נתמכים והניתוח שלהם ייכשל. במהלך תהליך הפענוח, הפורמטים נבדקים לפי הסדר עד שאחד מהם תואם למחרוזת. במהלך תהליך הקידוד, המערכת משתמשת בפורמט הראשון ומתעלמת מהשאר.
| ייצוג ב-JSON |
|---|
{ "formats": object ( |
| שדות | |
|---|---|
formats |
רשימה של פורמטים של תאריכים. |
DateTimeFormat
הגודל והתבנית שבהם צריך להשתמש כשממירים את השדה לתאריך.
| ייצוג ב-JSON |
|---|
{ "pattern": string, "size": int |
| שדות | |
|---|---|
pattern |
מציינים את תבנית עיצוב התאריך. מידע נוסף על תבניות תקינות של מעצבים זמין במאמר Class DateTimeFormatter. הערה: שנים עם שתי ספרות ( |
size |
מציינים את גודל השדה שהתבנית הזו חלה עליו. |
FormatTimestamp
אתם יכולים להמיר מחרוזת לחותמת זמן באמצעות אחד מהפורמטים שמופיעים. אפשר להחיל את זה רק על שדות בגודל מסוים. במהלך הפענוח, הפורמטים נבדקים לפי הסדר עד שאחד מהם תואם למחרוזת. במהלך הקידוד, המערכת תשתמש בפורמט הראשון ותתעלם מהשאר.
| ייצוג ב-JSON |
|---|
{ "formats": object ( |
| שדות | |
|---|---|
formats |
רשימה של פורמטים של חותמות זמן. |
HFP
מגדירים את השדה הזה כנקודה צפה (floating point) בבסיס הקסדצימלי.
מציינים אובייקט JSON ריק באופן הבא:
| ייצוג ב-JSON |
|---|
{ |
ModifierChain
כדי להחיל כמה משתנים ברצף, צריך לציין שרשרת משתנים. השינויים מוחלים לפי הסדר שבו הם צוינו.
| ייצוג ב-JSON |
|---|
{ "modifiers": object ( |
| שדות | |
|---|---|
modifiers |
מציינים את רשימת מאפייני השינוי שרוצים להחיל. |
NullIf
הגדרת שדה כ-null אם תנאי מסוים מתקיים. צריך לציין את null_value או את non_null_value או את שניהם.
כדי ליצור שדה של אינדיקטור לערך null, אפשר להשתמש ב-FieldSuffix עם משנה שדה null_if, ולהגדיר את is_inverse ל-true, כמו בדוגמאות הבאות:
דוגמה: Null-indicator
כדי ליצור שדה של אינדיקטור null, אפשר להשתמש ב-modifier של השדהnull_if באופן הבא.
{
"field_suffixes": [
{
"suffix": "NID",
"is_inverse": true,
"modifier": {
"null_if": {
"null_value": "?",
"target_field": "$self"
}
}
}
]
}
NID יכולים לשמש כאינדיקטורים לערכי null, כמו בקטע הבא מ-copybook:
01 REC. 02 FIELD PIC X(10). 02 FIELD-NID PIC X(1).
דוגמה: אינדיקטור null בינארי
כדי ליצור שדה של אינדיקטור null ב-binary, אפשר להשתמש בתווי השינוי של השדות binary ו-null_if, באופן הבא.
{
"field_suffixes": [
{
"suffix": "NID",
"modifier": {
"binary": {}
}
},
{
"suffix": "NID",
"is_inverse": true,
"modifier": {
"null_if": {
"null_value": "15",
"target_field": "$self"
}
}
}
]
}
NID יכולים להיות אינדיקטורים של binary null, באמצעות אותו copybook מהדוגמה הקודמת.
דוגמה: אינדיקטור null של בייטים
כדי ליצור שדה של אינדיקטור null ב-bytes, אפשר להשתמש בשינויי השדות bytes ו-null_if באופן הבא.
הערכים של null ו-not-null מבוטאים כ-HEX.
{
"field_suffixes": [
{
"suffix": "NID",
"modifier": {
"bytes": {}
}
},
{
"suffix": "NID",
"is_inverse": true,
"modifier": {
"null_if": {
"null_value": "FF",
"target_field": "$self"
}
}
}
]
}
NID יכולים להיות אינדיקטורים לערך null מסוג bytes, באמצעות אותו copybook מהדוגמה הקודמת.
| ייצוג ב-JSON |
|---|
{ "non_null_value": string, "non_null_values": string, "null_value": string, "null_values": string, "target_field": string |
| שדות | |
|---|---|
non_null_value |
אם מציינים את המאפיין הזה, והערך של |
non_null_values |
אם מציינים את המאפיין הזה, והערך של |
null_value |
אם מציינים את הערך הזה, והערך של |
null_values |
אם מציינים את המאפיין הזה, והערך של |
target_field |
מציינים את השדה שאת הערך שלו רוצים לבדוק. השדה חייב להיות בהיקף. כדי לגשת לשדות בתצוגת עץ, אפשר להשתמש בסימון נקודות (למשל, "GROUP.FIELD"). |
NullIfEmpty
אם כל הבייטים בשדה הם 0, צריך להגדיר את השדה כ-null.
מציינים אובייקט JSON ריק באופן הבא:
| ייצוג ב-JSON |
|---|
{ |
NullIfInvalid
אם המרת הקידוד נכשלת, הערך יוגדר כ-null.
אפשר להחיל את המגביל הזה רק על שדות עם גודל.
כברירת מחדל, אם פענוח של שדה נכשל, כל הרשומה מועברת למערך הנתונים של הגלישה (שגיאה) ולא נכללת בפלט, והשארת הטעינה מסתיימת עם הרשומות התקינות.
כשמגדירים את המשתנה null_if_invalid, המחבר ל-Mainframe שומר את הרשומה הלא חוקית ומגדיר את השדה הזה כ-null.
השתמשו בו רק כשאתם רוצים לשמור שורות כאלה עם ערך null, ולא רק כדי שהטעינה תצליח, כי ברירת המחדל כבר מדלגת על הרשומות הלא תקינות.
המערכת מתעלמת מהשגיאה והיא לא נרשמת בקבוצת הנתונים של הגלישה.
במהלך תהליך הפענוח, הערך של השדה הזה יהיה null ברשומה הזו.
אם אי אפשר לכתוב את הנתונים במהלך תהליך הקידוד, כל השדה יתמלא בבייטים ריקים.
מציינים אובייקט JSON ריק באופן הבא:
| ייצוג ב-JSON |
|---|
{ |
PackedDecimal
מגדירים את השדה הזה כ-PackedDecimal.
| ייצוג ב-JSON |
|---|
{ "logical_type": enum ( |
| שדות | |
|---|---|
logical_type |
שינוי הסוג הלוגי. כברירת מחדל, Mainframe Connector משתמש בסוג הלוגי האופטימלי על סמך הדיוק והקנה מידה. |
negative_sign_nibble |
מציין את הניבל שמשמש לסימנים שליליים. גם x'B' וגם x'D' הם סימנים שליליים תקינים, אבל יכול להיות שבמערכות או באפליקציות מסוימות של מחשב מרכזי יש מוסכמה שדורשת להשתמש באחד מהם ולא בשני. |
String
מגדירה את האפשרויות השונות שקשורות לפענוח ולקידוד של מחרוזות. אפשר להחיל רק על שדה מחרוזת.
| ייצוג ב-JSON |
|---|
{ "encoding": string, "pad_char": string, "trim_suffix": boolean |
| שדות | |
|---|---|
encoding |
הקידוד שבו השדה מקודד. |
pad_char |
כשהאפשרות הזו מוגדרת, מחרוזות הייצוא של המרווח הפנימי יכללו את הערך |
trim_suffix |
כשהערך מוגדר כ-true, כל רווח לבן בסוף המחרוזת ייחתך. trim_suffix משפיע רק על פענוח, הקידוד מתעלם מ-trim_suffix. שימו לב שמחרוזות שמכילות רק רווחים יהפכו למחרוזות ריקות. |
VarLen
מייצג שדה באורך משתנה.
שדה באורך משתנה מכיל שלושה חלקים:
- פריט קבוצתי שמכיל שני שדות משנה.
- שדה בתוך פריט הקבוצה שמכיל את אורך נתוני העסקה.
- שדה בתוך הפריט בקבוצה שמכיל את הנתונים.
השם של השדה באורך משתנה יהיה שם הקבוצה.
מציינים אובייקט JSON ריק באופן הבא:
| ייצוג ב-JSON |
|---|
{ |
ZonedDecimal
הגדרה של אפשרויות שונות שקשורות לקידוד ולפענוח של מספרים עשרוניים עם אזור. אפשר להחיל את המגביל הזה רק על שדה עשרוני.
| ייצוג ב-JSON |
|---|
{ "encoding": enum ( |
| שדות | |
|---|---|
encoding |
הקידוד שבו השדה מקודד. |
logical_type |
מציינים את הסוג הלוגי שבו צריך להשתמש כשמפענחים או מקודדים את השדה. |
FieldOverride
שינוי או שינוי מותאם אישית של שרשרת הפענוח והקידוד של השדה שצוין.
| ייצוג ב-JSON |
|---|
{ "field": string, "modifier": object ( |
| שדות | |
|---|---|
field |
מציינים את שם השדה שעליו רוצים להחיל את המגביל. |
modifier |
מציינים את מגביל ההתאמה שרוצים להחיל על השדה התואם. |
FieldSuffix
סיומות של שדות חלות על כל השדות שיש להם סיומת.
השדות יותאמו אם הם מסתיימים במקף (-) או בקו תחתון (_) ואחריהם הסיומת.
הסיומות לא תלויות-רישיות.
המשתנה FieldSuffix מוחל אחרי המשתנה FieldOverride.
לדוגמה, מגדיר השינוי שמוגדר לסיומת NID יחול על השדה שנקרא FLD-NID אבל לא על השדה FUNID.
| ייצוג ב-JSON |
|---|
{ "is_inverse": boolean, "modifier": object ( |
| שדות | |
|---|---|
is_inverse |
מציינים אם המגדיר הוא מגדיר שדה הפוך או לא.
משנה שדה הפוך מחיל את המשנה על שדה אחר שיש לו שם זהה לשם של השדה עם המשנה, בלי המשנה. לדוגמה, אם השדות כשמשתמשים בשינוי שדה הפוך, אפשר להשתמש במזהה המיוחד לדוגמה, כדי ליצור שדה של אינדיקטור ערך null, אפשר להשתמש במגדיר השדה |
modifier |
מציינים את המגדיר שרוצים להחיל על השדות התואמים. |
suffix |
השדה עם הסיומת הזו יכלול את המגביל. |
שינוי
טרנספורמציות של תצוגות משמשות לשינוי הקשר בין הטבלה לבין קובץ ה-QSAM. הטרנספורמציות תמיד מנוסחות מנקודת המבט של הנתונים. הקונספט דומה לטבלאות תצוגה ב-BigQuery.
| ייצוג ב-JSON |
|---|
{ "exclude": object ( |
| שדות | |
|---|---|
exclude |
|
move |
|
rename |
|
split |
|
target_table |
זה שינוי אופציונלי. מציינים את שם טבלת היעד (תצוגה) שעליה רוצים להחיל את הטרנספורמציה. כברירת מחדל, הטרנספורמציות חלות על הטבלה הראשית ( הערה: אי אפשר לטרגט טרנספורמציות מפוצלות, ותופיע שגיאה אם |
unnest |
|
אל תכלול
להחריג שדה מהטבלה שנוצרת, אבל עדיין לבצע פענוח או קידוד. האפשרות הזו שימושית כשלא צריך להעביר את השדה לטבלה, אבל הוא נדרש להמרת קידוד. לדוגמה, אפשר להשמיט מהטבלה שדות של אינדיקטורים מסוג null או שדות של אורך.
כדי לעקוף את ההמרה לחלוטין, צריך להחיל את הערך לשינוי המילוי.
| ייצוג ב-JSON |
|---|
{ "field": string |
| שדות | |
|---|---|
field |
מציינים את השדה שרוצים להחריג. |
העברה
העברת שדה ברשומה.
| ייצוג ב-JSON |
|---|
{ "field": string, "offset": int |
| שדות | |
|---|---|
field |
מציינים את השדה שרוצים להעביר. |
offset |
מציינים את מספר המקומות שצריך להזיז את השדה, קדימה או אחורה. |
שנה שם
שינוי השם של שדה אחד או יותר על סמך התאמה של ביטוי רגולרי.
לדוגמה, כדי להחליף את כל המקפים בקו תחתון, משתמשים בפורמט ה-JSON הבא:
{"find": "\\-", "replace":"_"}.
| ייצוג ב-JSON |
|---|
{ "find": string, "replace": string |
| שדות | |
|---|---|
find |
מציין תבנית של ביטוי רגולרי ב-Java כדי לזהות את השדות שצריך לשנות את השם שלהם. התבנית מותאמת לשם השדה המלא. אם התבנית תואמת לחלק כלשהו בשם השדה, השדה נחשב כתואם. דוגמאות:
|
replace |
מציין את השם החדש של השדות התואמים. אפשר להשתמש בקבוצות לחילוץ מהביטוי הרגולרי דוגמאות:
|
פיצול
| ייצוג ב-JSON |
|---|
{ "field": string, "foreign_key": string, "primary_key": string |
| שדות | |
|---|---|
field |
מציינים את השדה שרוצים לפצל. |
foreign_key |
מציינים את שם השדה שיתווסף לסכימה החדשה שבה יאוחסן ערך המפתח הראשי. אם לא מציינים שם, המערכת משתמשת בשם של המפתח הראשי. |
primary_key |
מציינים את שם השדה שישמש כמפתח ראשי. |
Unnest
מבטלים את ההטמעה של השדה.
| ייצוג ב-JSON |
|---|
{ "field": string, "format": string |
| שדות | |
|---|---|
field |
מציינים את השדה שרוצים לבטל את ההטמעה שלו. |
format |
מציינים את הפורמט של השדה החדש. השדה במבנים לא מקוננים, במערכים וברשימות לא מקוננים, |
טיפוסים בני מנייה (enum)
BinarySignedness
| טיפוסים בני מנייה (enum) | |
|---|---|
SIGNED |
המספר הבינארי הוא מספר עם סימן. |
UNSIGNED |
המספר הבינארי לא חתום. |
UNSPECIFIED |
נסו להסיק את החתימה מהשרשרת הקיימת. |
DecimalLogicalType
סוג לוגי לשימוש בשדה עשרוני.
| טיפוסים בני מנייה (enum) | |
|---|---|
AUTO |
השתמשו בסוג האופטימלי ביותר בהתאם לקנה המידה ולרמת הדיוק. |
BIG_DECIMAL |
שומרים את הערך כמספר עשרוני לא מוגבל. זו האפשרות האיטית ביותר, אבל היא תומכת בכל מספר עשרוני בכל רמת דיוק ובכל קנה מידה. |
BIG_INTEGER |
שומרים את הערך כמספר שלם לא מוגבל. זו האפשרות האיטית ביותר, אבל היא תומכת בכל מספר שלם בכל רמת דיוק. |
DECIMAL64 |
משתמשים ב-64 ביטים כדי לאחסן את הערך. המשתנה הזה פועל רק על מספרים שהדיוק שלהם קטן מ-18 או שווה ל-18. |
LONG |
משתמשים ב-64 ביטים כדי לאחסן את הערך. המשתנה הזה פועל רק על מספרים שהדיוק שלהם קטן מ-18 או שווה ל-18, והקנה מידה הוא 0. |
PackedDecimalNegativeNibble
| טיפוסים בני מנייה (enum) | |
|---|---|
NIBBLE_B |
ברירת המחדל היא להשתמש ב-x'B'. |
NIBBLE_D |
משתמשים ב-x'D' לציון סימן שלילי. |
SchemaValidationMode
מציינים את מצב אימות הסכימה שבו רוצים להשתמש במהלך הידור ה-copybook. במצב הזה המערכת בודקת את התאימות לפורמט נתונים ספציפי של היעד.
| טיפוסים בני מנייה (enum) | |
|---|---|
BIG_QUERY |
מצב אימות סכימה לתאימות עם BigQuery. במצב הזה, האימות שמוגדר כברירת מחדל מורחב כדי לוודא שהסכימה של ה-copybook תואמת לסוגי הנתונים של BigQuery. |
DEFAULT |
מצב ברירת המחדל לאימות הסכימה. במצב הזה המערכת מוודאת ששמות השדות ב-copybook הם ייחודיים. |
MYSQL |
מצב אימות סכימה לתאימות ל-MySQL. במצב הזה, האימות שמוגדר כברירת מחדל מורחב כדי לוודא שהסכימה של ה-copybook תואמת לסוגי הנתונים של MySQL. |
POSTGRES |
מצב אימות סכימה לתאימות ל-PostgreSQL. במצב הזה, האימות שמוגדר כברירת מחדל מורחב כדי לוודא שהסכימה של ה-copybook תואמת לסוגי הנתונים של PostgreSQL. |
ZonedDecimalEncoding
מציינים את הקידוד שבו צריך להשתמש כשמפענחים או מקודדים שדה עשרוני עם אזורים.
| טיפוסים בני מנייה (enum) | |
|---|---|
ASCII |
צריך להשתמש בקידוד ASCII. |
EBCDIC |
צריך להשתמש בקידוד EBCDIC. |
UNSPECIFIED |
שומרים על הקידוד שצוין בשרשרת המגבילים.
אם לא מציינים מקש צירוף, המערכת משתמשת ב-EBCDIC. |