SAP أنواع بيانات HANA: رقمية، سلسلة أحرف، عشرية
⚡ ملخص ذكي
SAP تحدد أنواع بيانات HANA ما يمكن تخزينه في كل عمود، وتشمل تصنيفات التاريخ والوقت، والأرقام، والقيم المنطقية، والسلاسل النصية، والبيانات الثنائية، والكائنات الكبيرة، والتصنيفات متعددة القيم، وكل خريطةping إلى نوع تخزين أعمدة محدد.
في هذا SAP البرنامج التعليمي لأنواع بيانات HANA، سوف نتعلم:
1) SAP أنواع بيانات هانا - SAP تتضمن أنواع بيانات HANA أوقات التاريخ، ونوع البيانات الرقمية، والمنطقية، وسلسلة الأحرف، وأنواع البيانات الثنائية، وما إلى ذلك.
2) SAP معرفات HANA - المعرفات المحددة والمعرفات غير المحددة
أنواع البيانات في SAP HANA
In SAP قاعدة بيانات هانا، SQL أنواع البيانات هي كما يلي:
| تصنيف | التصنيف الفرعي | نوع بيانات SQL | نوع مخزن العمود | التنسيق الافتراضي |
|---|---|---|---|---|
| أنواع أوقات التاريخ | التاريخ | تاريخ | CS_DAYDATE | "السنة-الشهر-اليوم" |
| الوقت: | الوقت | CS_SECONDTIME | 'HH24:MI:SS' | |
| التاريخ الثاني | الموعد الثاني | CS_LONGDATE | 'YYYY-MM-DD HH24:MI:SS' | |
| ختم الوقت | الطابع الزمني | CS_SECONDDATE | 'YYYY-MM-DD HH24:MI:SS.FFn' | |
| أنواع رقمية | عدد صحيح صغير | صغيرة | CS_INT | عدد صحيح غير مُوقّع ذو 8 بت، نطاقه من 0 إلى 255 |
| عدد صحيح صغير | SMALLINT | CS_INT | عدد صحيح مُوقّع 16 بت، النطاق من -32,768 إلى 32,767 | |
| عدد صحيح | INTEGER | CS_INT | عدد صحيح مُوقّع 32 بت، النطاق من -2,147,483,648 إلى 2,147,483,647 | |
| عدد صحيح كبير | كبير | CS_FIXED(18,0) | عدد صحيح مُوقّع 64 بت، النطاق من -9,223,372,036,854,775,808 إلى 9,223,372,036,854,775,807 | |
| عشري | عشري (ع، ق) ف الدقة s- مقياس |
CS_FIXED(ملاحظة، ق) | يمكن أن تتراوح الدقة p من 1 إلى 38. يمكن أن يتراوح المقياس من 0 إلى p لـ SAP HANA نوع البيانات العشرية. إذا لم يتم تحديد الدقة والمقياس، يصبح DECIMAL رقمًا عشريًا بفاصلة عائمة. |
|
| عشري صغير | رقم عشري صغير | CS_SDFLOAT | وهو رقم عشري عائم. يجب أن تكون الدقة والمقياس ضمن النطاق 1~16 للدقة و-369~368 للمقياس، اعتمادًا على القيمة المخزنة. SMALLDECIMAL مدعوم فقط لجدول تخزين الأعمدة. | |
| عدد حقيقي | ريال | CS_FLOAT | رقم الفاصلة العائمة 32 بت أحادي الدقة | |
| Double رقم الهاتف | DOUBLE | CS_مزدوج | رقم عشري مزدوج الدقة مكون من 64 بت | |
| تطفو | تعويم (ن) | CS_مزدوج | هو عدد حقيقي مكون من 32 بت أو 64 بت. حيث يحدد n عدد البتات ويجب أن يكون ضمن النطاق بين 1 و53. | |
| منطقية | منطقية | BOOLEAN | CS_INT | صحيح، خطأ وغير معروف (فارغ). |
| سلسلة أحرف | سلسلة أحرف ذات طول متغير | VARCHAR (ن) | CS_STRING | نوع بيانات طول سلسلة HANA هذا هو سلسلة أحرف متغيرة الطول، حيث يحدد 'n' الحد الأقصى للطول بالبايتات وهذا عدد صحيح بين 1 و 5000. |
| حرف Unicode متغير الطول | نفارتشار (ن) | CS_STRING | سلسلة أحرف Unicode ذات طول متغير، حيث يشير إلى الحد الأقصى لطول الأحرف وهو عدد صحيح بين 1 و5000 | |
| حرف أبجدي | ألفانوم (ن) | CS_ALPHANUM | أحرف أبجدية رقمية متغيرة الطول، حيث يشير n إلى الحد الأقصى للطول وهو عدد صحيح بين 1 و127 | |
| نص قصير | نص قصير(ن) | CS_STRING | هو عبارة عن سلسلة نصية متغيرة الطول توفر ميزات البحث النصي والبحث عن السلاسل النصية. يمكن تعريف هذا النوع من البيانات لجداول تخزين الأعمدة، ولكن ليس لجداول الصفوف. | |
| الأنواع الثنائية | نص ثنائي | فاربيناري (ن) | CS_RAW | قم بتخزين البيانات الثنائية ذات الحد الأقصى للطول المحدد بالبايت، حيث يشير n إلى الحد الأقصى للطول وهو عدد صحيح بين 1 و5000. |
| أنواع LOB (أنواع الكائنات الكبيرة) | لوب ثنائي | BLOB | CS_RAW | كميات كبيرة من البيانات الثنائية |
| حرف لوب | كلوب | CS_STRING | بيانات أحرف ASCII | |
| حرف Unicode LOB | نكلوب | CS_STRING | كائن أحرف Unicode كبير | |
| TEXT | TEXT | CS_STRING | يوفر نوع البيانات TEXT ميزات البحث عن النص. يمكن تحديد نوع البيانات هذا لجداول تخزين الأعمدة، ولكن ليس لجداول تخزين الصفوف. | |
| البيانات النصية الثنائية | بينتكست | CS_STRING | نوع البيانات BINTEXT يشبه نوع البيانات TEXT وبالتالي يدعم ميزات البحث عن النص، ولكن من الممكن إدراج البيانات الثنائية. يمكن تعريف نوع البيانات هذا لجداول الأعمدة، ولكن ليس لجداول الصفوف. | |
| أنواع متعددة القيم | مجموعة | مجموعة مصفوفة | يقوم بتخزين مجموعات من القيم من نفس نوع البيانات حيث يرتبط كل عنصر بموضع واحد بالضبط. يمكن أن تحتوي المصفوفات على قيم فارغة كما في حالة عدم وجود قيمة. |
اختيار الحق SAP نوع بيانات HANA
يوضح الجدول أعلاه ما هو متاح. يُعدّ الاختيار الجيد أكثر أهمية في SAP HANA أفضل من قاعدة البيانات القائمة على القرص، لأن كل عمود موجود في الذاكرة، ويستهلك النوع كبير الحجم موردًا نادرًا في كل صف.
أربع قواعد تغطي معظم القرارات:
- اختر أصغر نوع رقمي مناسب. يحتاج مؤشر الحالة ذو القيم الخمس المحتملة إلى نوع بيانات TINYINT، وليس INTEGER. ويُقاس الفرق في حجم الذاكرة المستخدمة في جدول يحتوي على مليار صف بالجيجابايت.
- لا تخزن النقود أبدًا في شكل حقيقي أو مضاعف. لا يمكن للأرقام العشرية ذات الفاصلة العائمة تمثيل الكسور العشرية بدقة، لذا فإن المجاميع تختلف بمقدار أجزاء من وحدة العملة. استخدم DECIMAL مع تحديد الدقة والمقياس بشكل واضح.
- يفضل استخدام NVARCHAR بدلاً من VARCHAR. يحسب نوع البيانات VARCHAR عدد البايتات، بينما يحسب نوع البيانات NVARCHAR عدد الأحرف، لذا فإن أي نص غير ASCII يتم اقتطاعه بشكل غير متوقع في نوع البيانات VARCHAR. حديث SAP تتعامل إصدارات HANA مع VARCHAR على أنها NVARCHAR لهذا السبب تحديدًا.
- طابق دقة التاريخ مع المتطلبات. يُستخدم التاريخ (DATE) لعرض يوم كامل، بينما يُستخدم التاريخ الثاني (SECONDDATE) عند الحاجة إلى تحديد وقت اليوم، ويُستخدم الطابع الزمني (TIMESTAMP) فقط عند استخدام دقة أقل من ثانية. كل زيادة في الدقة تتطلب مساحة تخزين إضافية في كل صف.
تتطلب أنواع البيانات الكبيرة عناية خاصة. يُعد عمود BLOB أو NCLOB مناسبًا ولكنه ثقيل، ولا يعمل البحث النصي على TEXT أو SHORTTEXT إلا في جداول تخزين الأعمدة، لذا فإن اختيار التخزين واختيار نوع البيانات مرتبطان. يتم تناول خيارات التخزين في SAP هانا SQL البرنامج التعليمي.
SAP معرفات HANA
يتم استخدام المعرفات لتمثيل الاسم في SQL بيان (على سبيل المثال اسم الجدول، اسم العرض، اسم العمود، اسم الفهرس، اسم المرادف، اسم الإجراء، اسم الوظيفة، وما إلى ذلك)
هناك نوعان من المعرفات في SAP HANA: معرفات محددة ومعرفات غير محددة.
- معرفات محددة - وهو محاط بالفاصلة، Double يقتبس "". يمكن أن يحتوي المعرف على أي حرف بما في ذلك الحرف الخاص.
- معرفات غير محددة – يجب أن تبدأ المعرفات غير المحددة (اسم الجدول، اسم العمود) بحرف ولا يمكن أن تحتوي على أي رموز بخلاف الرقم أو الشرطة السفلية '_'.
هناك نوعان من علامات الاقتباس لتحديد الحدود على النحو التالي-
- علامة الاقتباس المفردة (' ') - يتم استخدامه لتحديد السلسلة.
- Double علامة اقتباس (" ")- يتم استخدامه لتحديد المعرفات.
⚠️ تحذير: يتم تحويل المعرّف غير المحدد إلى أحرف كبيرة عند إنشاء الكائن. إنشاء جدول باسم "employee" ثم اختيار البيانات منه بأحرف صغيرة سيؤدي إلى فشل العملية، لأن الاسم المخزن هو EMPLOYEE. لذا، يُنصح إما بتجنب استخدام علامات الاقتباس المزدوجة تمامًا، أو استخدامها بشكل متسق.
تحويل أنواع البيانات والأخطاء الشائعة
SAP تقوم HANA بالتحويل بين الأنواع المتوافقة تلقائيًا، لكن التحويل الضمني هو المصدر الخفي للنتائج الخاطئة والاستعلامات البطيئة. أما التحويل الصريح فيجعل الغرض واضحًا.
تقوم دالتان بالعمل. تقوم دالة CAST بتحويل القيمة إلى نوع مسمى، وتقوم دوال TO_DATE و TO_VARCHAR و TO_DECIMAL وما شابهها بالتحويل باستخدام سلسلة تنسيق اختيارية.
-- Explicit conversion with CAST SELECT CAST('1234' AS INTEGER) FROM DUMMY; -- Conversion with an explicit format SELECT TO_DATE('2026-07-21', 'YYYY-MM-DD') FROM DUMMY; -- Number to string with fixed decimals SELECT TO_DECIMAL(1234.5678, 10, 2) FROM DUMMY;
تُعزى معظم مشاكل التحويل إلى أربعة أخطاء:
- تجاوز عددي. إدخال القيمة 40000 في حقل من نوع SMALLINT يفشل لأن نطاق القيم الموقعة يتوقف عند 32,767. تشير الرسالة إلى اسم العمود وليس القيمة، لذا تحقق من التعريف أولاً.
- اقتطاع السلسلة النصية. يؤدي تحميل نص أطول من الطول المُعلن عنه إلى ظهور خطأ بدلاً من اقتطاعه بصمت. يتم حساب عدد الأحرف باستخدام نوع NVARCHAR وعدد البايتات باستخدام نوع VARCHAR.
- تنسيق التاريخ غير صالح. يؤدي تمرير سلسلة نصية بنمط خاطئ إلى دالة TO_DATE إلى فشل العملية. لذا، يُرجى دائمًا تحديد قناع التنسيق بدلاً من الاعتماد على الإعدادات الافتراضية للجلسة.
- التحويل الضمني في جملة WHERE. مقارنة عمود نصي برقم تجبر على إجراء تحويل في كل صف، مما يعيق عملية التصفية الفعالة. حوّل الثابت بدلاً من العمود.
تُغطى رموز المقارنة المستخدمة في هذه المرشحات في SAP مشغلي HANAوالمنصة الأوسع في SAP برنامج تعليمي لـ HANA سلسلة.

