SAP Τύποι δεδομένων HANA: Αριθμητικό, Συμβολοσειρά χαρακτήρων, Δεκαδικό
⚡ Έξυπνη Σύνοψη
SAP Οι τύποι δεδομένων HANA ορίζουν τι μπορεί να αποθηκεύσει κάθε στήλη, καλύπτοντας την ημερομηνία και την ώρα, τις αριθμητικές τιμές, τις λογικές τιμές, τις συμβολοσειρές χαρακτήρων, τις δυαδικές τιμές, τις ταξινομήσεις μεγάλων αντικειμένων και πολλαπλών τιμών, κάθε αντιστοίχιση.ping σε έναν συγκεκριμένο τύπο χώρου αποθήκευσης στηλών.

Σε αυτή τη SAP Οδηγός για τους τύπους δεδομένων HANA, θα μάθουμε:
1) SAP Τύποι δεδομένων HANA - SAP Οι τύποι δεδομένων HANA περιλαμβάνουν Ώρες ημερομηνίας, Αριθμητικό τύπο δεδομένων, Δυαδικό, Συμβολοσειρά χαρακτήρων, Δυαδικούς τύπους δεδομένων κ.λπ.
2) SAP Αναγνωριστικά HANA – Οριοθετημένα αναγνωριστικά και απεριόριστα αναγνωριστικά
Τύποι δεδομένων σε SAP HANA
In SAP Βάση δεδομένων HANA, SQL Οι τύποι δεδομένων είναι οι παρακάτω:
| Ταξινόμηση | Υποκατηγορία | Τύπος δεδομένων SQL | Στήλη Τύπος καταστήματος | Προεπιλεγμένη μορφή |
|---|---|---|---|---|
| Τύποι ωρών ημερομηνίας | Ημερομηνία | ΗΜΕΡΟΜΗΝΙΑ | CS_DAYDATE | 'ΕΕΕΕ-ΜΜ-ΗΗ' |
| Χρόνος | TIME | CS_SECONDTIME | 'HH24:MI:SS' | |
| Δεύτερο ραντεβού | ΔΕΥΤΕΡΗ ΗΜΕΡΟΜΗΝΙΑ | CS_LONGDATE | 'ΕΕΕΕ-ΜΜ-ΗΗ ΩΩ24:ΜΙ:ΔΣ' | |
| Χρονική σφραγίδα | ΧΡΟΝΟΣΗΜΑ | CS_SECONDDATE | 'ΕΕΕΕ-ΜΜ-ΗΗ ΩΩ24:ΜΙ:ΔΣ.FFn' | |
| Αριθμητικοί τύποι | Μικροσκοπικός Ακέραιος | TINYINT | CS_INT | 8-bit μη πρόσημος ακέραιος αριθμός, εύρος 0 έως 255 |
| Μικρός Ακέραιος | ΜΙΚΡΟ | CS_INT | Ακέραιος αριθμός 16-bit με πρόσημο, εύρος -32,768 έως 32,767 | |
| Ακέραιος αριθμός | ΑΚΕΡΑΙΟΣ ΑΡΙΘΜΟΣ | CS_INT | Ακέραιος αριθμός 32-bit με πρόσημο, εύρος -2,147,483,648 έως 2,147,483,647 | |
| Μεγάλος Ακέραιος | ΜΕΓΑΛΗ | CS_FIXED(18,0) | Ακέραιος αριθμός 64-bit με πρόσημο, εύρος -9,223,372,036,854,775,808 έως 9,223,372,036,854,775,807 | |
| Δεκαδικός | ΔΕΚΑΔΙΚΑ(p,s) p-Ακρίβεια s- κλίμακα |
CS_FIXED(ps,s) | Η ακρίβεια p μπορεί να κυμαίνεται από 1 έως 38. Η κλίμακα s μπορεί να κυμαίνεται από 0 έως p για SAP Δεκαδικός τύπος δεδομένων HANA. Εάν δεν έχουν καθοριστεί η ακρίβεια και η κλίμακα, το ΔΕΚΑΔΙΚΟ γίνεται δεκαδικός αριθμός κινητής υποδιαστολής. |
|
| Μικρό Δεκαδικό | ΜΙΚΡΟΔΕΚΑΔΙΚΟ | CS_SDFLOAT | Είναι δεκαδικός αριθμός κινητής υποδιαστολής. Η ακρίβεια και η κλίμακα πρέπει να είναι εντός του εύρους 1~16 για ακρίβεια και -369~368 για κλίμακα, ανάλογα με την αποθηκευμένη τιμή. Το SMALLDECIMAL υποστηρίζεται μόνο για τον πίνακα αποθήκευσης στηλών. | |
| Πραγματικός αριθμός | ΠΡΑΓΜΑΤΙΚΌΣ | CS_FLOAT | Αριθμός κινητής υποδιαστολής μονής ακρίβειας 32 bit | |
| Double αριθμός | ΔΙΠΛΌ | CS_DOUBLE | έναν αριθμό κινητής υποδιαστολής 64-bit διπλής ακρίβειας | |
| φλοτέρ | FLOAT(n) | CS_DOUBLE | Είναι πραγματικός αριθμός 32-bit ή 64-bit. Όπου το n καθορίζει τον αριθμό των bit και θα πρέπει να κυμαίνεται μεταξύ 1 και 53. | |
| Boolean | Boolean | BOOLEAN | CS_INT | ΣΩΣΤΟ, ΛΑΘΟΣ ΚΑΙ ΑΓΝΩΣΤΟ (ΜΗΝΥΤΟ). |
| Συμβολοσειρά χαρακτήρων | Συμβολοσειρά χαρακτήρων μεταβλητού μήκους | VARCHAR (n) | CS_STRING | Αυτός ο τύπος δεδομένων μήκους συμβολοσειράς HANA είναι μια συμβολοσειρά χαρακτήρων μεταβλητού μήκους, όπου το 'n' καθορίζει το μέγιστο μήκος σε byte και αυτός είναι ένας ακέραιος αριθμός μεταξύ 1 και 5000. |
| Χαρακτήρας Unicode μεταβλητού μήκους | NVARCHAR(n) | CS_STRING | Συμβολοσειρά συνόλου χαρακτήρων Unicode μεταβλητού μήκους, όπου υποδεικνύει το μέγιστο μήκος σε χαρακτήρες και είναι ένας ακέραιος αριθμός μεταξύ 1 και 5000 | |
| Αλφαριθμητικός χαρακτήρας | ALPHANUM(n) | CS_ALPHANUM | Αλφαριθμητικοί χαρακτήρες μεταβλητού μήκους, όπου το n υποδηλώνει το μέγιστο μήκος και είναι ένας ακέραιος αριθμός μεταξύ 1 και 127 | |
| Σύντομο κείμενο | SHORTTEXT(n) | CS_STRING | Είναι μια συμβολοσειρά μεταβλητού μήκους που παρέχει δυνατότητες αναζήτησης κειμένου και αναζήτησης συμβολοσειρών. Αυτός ο τύπος δεδομένων μπορεί να οριστεί για πίνακες αποθήκευσης στηλών, αλλά όχι για πίνακες γραμμών. | |
| Δυαδικοί τύποι | Δυαδικό κείμενο | VARBINARY(n) | CS_RAW | Αποθηκεύστε δυαδικά δεδομένα ενός καθορισμένου μέγιστου μήκους σε byte, όπου το n υποδηλώνει το μέγιστο μήκος και είναι ένας ακέραιος αριθμός μεταξύ 1 και 5000. |
| Τύποι LOB (Τύποι μεγάλων αντικειμένων) | Δυαδικό LOB | Blob | CS_RAW | Μεγάλες ποσότητες δυαδικών δεδομένων |
| LOB χαρακτήρα | CLOB | CS_STRING | Δεδομένα χαρακτήρων ASCII | |
| LOB χαρακτήρων Unicode | NCLOB | CS_STRING | Μεγάλο αντικείμενο χαρακτήρων Unicode | |
| ΚΕΙΜΕΝΟ | ΚΕΙΜΕΝΟ | CS_STRING | Ο τύπος δεδομένων TEXT παρέχει δυνατότητες αναζήτησης κειμένου. Αυτός ο τύπος δεδομένων μπορεί να οριστεί για πίνακες αποθήκευσης στηλών, αλλά όχι για πίνακες αποθήκευσης σειρών. | |
| ΔΥΑΔΙΚΑ δεδομένα κειμένου | BINTEXT | CS_STRING | Ο τύπος δεδομένων BINTEXT είναι παρόμοιος με τον τύπο δεδομένων TEXT και επομένως υποστηρίζει λειτουργίες αναζήτησης κειμένου, αλλά είναι δυνατή η εισαγωγή δυαδικών δεδομένων. Αυτός ο τύπος δεδομένων μπορεί να οριστεί για πίνακες στηλών, αλλά όχι για πίνακες σειρών. | |
| Τύποι πολλαπλών τιμών | Παράταξη | ΠΙΝΑΚΑΣ | Αποθηκεύει συλλογές τιμών του ίδιου τύπου δεδομένων όπου κάθε στοιχείο σχετίζεται με ακριβώς μία θέση. Οι πίνακες μπορούν να περιέχουν τιμές NULL όπως απουσία τιμής. |
Επιλέγοντας το σωστό SAP Τύπος δεδομένων HANA
Ο παραπάνω πίνακας παραθέτει τι είναι διαθέσιμο. Η σωστή επιλογή έχει μεγαλύτερη σημασία SAP HANA σε σχέση με μια βάση δεδομένων που βασίζεται σε δίσκο, επειδή κάθε στήλη υπάρχει στη μνήμη και ένας υπερμεγέθης τύπος καταναλώνει έναν σπάνιο πόρο σε κάθε γραμμή.
Τέσσερις κανόνες καλύπτουν τις περισσότερες αποφάσεις:
- Πάρτε τον μικρότερο αριθμητικό τύπο που ταιριάζει. Μια σημαία κατάστασης με πέντε πιθανές τιμές χρειάζεται TINYINT, όχι INTEGER. Σε έναν πίνακα δισεκατομμυρίων γραμμών, η διαφορά μετριέται σε gigabytes μνήμης.
- Ποτέ μην αποθηκεύετε χρήματα σε ΠΡΑΓΜΑΤΙΚΑ ή ΔΙΠΛΑΣΙΑ. Η κινητή υποδιαστολή δεν μπορεί να αναπαραστήσει με ακρίβεια δεκαδικά κλάσματα, επομένως τα σύνολα μεταβάλλονται κατά κλάσματα μιας νομισματικής μονάδας. Χρησιμοποιήστε τη ΔΕΚΑΔΙΚΗ με σαφή ακρίβεια και κλίμακα.
- Προτίμηση NVARCHAR από VARCHAR. Το VARCHAR μετράει byte και το NVARCHAR χαρακτήρες, επομένως οποιοδήποτε κείμενο που δεν είναι ASCII περικόπτεται απροσδόκητα στο VARCHAR. Σύγχρονο SAP Οι εκδόσεις HANA αντιμετωπίζουν το VARCHAR ως NVARCHAR ακριβώς για αυτόν τον λόγο.
- Αντιστοίχιση ακρίβειας ημερομηνίας με την απαίτηση. Ημερομηνία (DATE) για μια ημερολογιακή ημέρα, ΔΕΥΤΕΡΗ (SECONDDATE) όπου η ώρα της ημέρας έχει σημασία και μόνο TIMESTAMP όπου χρησιμοποιείται πραγματικά ακρίβεια μικρότερη του δευτερολέπτου. Κάθε αναβάθμιση κοστίζει αποθήκευση σε κάθε γραμμή.
Οι μεγάλοι τύποι αντικειμένων χρήζουν ιδιαίτερης προσοχής. Μια στήλη BLOB ή NCLOB είναι βολική αλλά βαριά και η αναζήτηση κειμένου σε TEXT ή SHORTTEXT λειτουργεί μόνο σε πίνακες αποθήκευσης στηλών, επομένως η επιλογή αποθήκευσης και η επιλογή τύπου δεδομένων είναι συνδεδεμένες. Οι επιλογές αποθήκευσης καλύπτονται στο SAP HANA SQL tutorial.
SAP Αναγνωριστικά HANA
Τα αναγνωριστικά χρησιμοποιούνται για την αναπαράσταση του ονόματος SQL δήλωση (π.χ. όνομα πίνακα, όνομα προβολής, όνομα στήλης, όνομα ευρετηρίου, όνομα συνώνυμου, όνομα διαδικασίας, όνομα συνάρτησης κ.λπ.)
Υπάρχουν δύο τύποι αναγνωριστικών σε SAP HANA: Οριοθετημένα αναγνωριστικά και Μη οριοθετημένα αναγνωριστικά.
- Οριοθετημένα αναγνωριστικά – Εσωκλείεται στον οριοθέτη, Double Εισαγωγικά "". Το αναγνωριστικό μπορεί να περιέχει οποιονδήποτε χαρακτήρα, συμπεριλαμβανομένου του ειδικού χαρακτήρα.
- Απεριόριστα αναγνωριστικά – Τα απεριόριστα αναγνωριστικά (όνομα πίνακα, όνομα στήλης) πρέπει να ξεκινούν με ένα γράμμα και δεν μπορούν να περιέχουν άλλα σύμβολα εκτός από ένα ψηφίο ή μια κάτω παύλα «_».
Υπάρχουν δύο τύποι εισαγωγικών για οριοθέτηση όπως παρακάτω-
- Μονό εισαγωγικό (' ') – Χρησιμοποιείται για την οριοθέτηση της συμβολοσειράς.
- Double Εισαγωγικά (" ")– Χρησιμοποιείται για την οριοθέτηση αναγνωριστικών.
⚠️ Προειδοποίηση: Ένα απεριόριστο αναγνωριστικό μετατρέπεται σε κεφαλαία γράμματα κατά τη δημιουργία του αντικειμένου. Η δημιουργία ενός πίνακα ως υπάλληλος και η μετέπειτα επιλογή από τον όρο "υπάλληλος" με πεζά γράμματα αποτυγχάνει, επειδή το αποθηκευμένο όνομα είναι ΥΠΑΛΛΗΛΟΣ. Είτε αποφεύγετε εντελώς τα διπλά εισαγωγικά είτε χρησιμοποιείτε τα με συνέπεια.
Μετατροπή τύπου δεδομένων και συνηθισμένα σφάλματα
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 και τα byte σε σχέση με το VARCHAR.
- Μη έγκυρη μορφή ημερομηνίας. Η μεταβίβαση μιας συμβολοσειράς με λάθος μοτίβο στην TO_DATE αποτυγχάνει. Να παρέχετε πάντα τη μάσκα μορφοποίησης αντί να βασίζεστε στην προεπιλεγμένη ρύθμιση της περιόδου σύνδεσης.
- Έμμεση μετατροπή σε μια ρήτρα WHERE. Η σύγκριση μιας στήλης χαρακτήρων με έναν αριθμό επιβάλλει μια μετατροπή σε κάθε γραμμή, η οποία εμποδίζει το αποτελεσματικό φιλτράρισμα. Μετατρέψτε τη σταθερά αντί για τη στήλη.
Τα σύμβολα σύγκρισης που χρησιμοποιούνται σε αυτά τα φίλτρα καλύπτονται στο SAP Χειριστές HANAκαι την ευρύτερη πλατφόρμα στο SAP Εκπαιδευτικό σεμινάριο HANA σειρές.
