SAP Τύποι δεδομένων HANA: Αριθμητικό, Συμβολοσειρά χαρακτήρων, Δεκαδικό

⚡ Έξυπνη Σύνοψη

SAP Οι τύποι δεδομένων HANA ορίζουν τι μπορεί να αποθηκεύσει κάθε στήλη, καλύπτοντας την ημερομηνία και την ώρα, τις αριθμητικές τιμές, τις λογικές τιμές, τις συμβολοσειρές χαρακτήρων, τις δυαδικές τιμές, τις ταξινομήσεις μεγάλων αντικειμένων και πολλαπλών τιμών, κάθε αντιστοίχιση.ping σε έναν συγκεκριμένο τύπο χώρου αποθήκευσης στηλών.

  • Τύποι ημερομηνίας και ώρας: Οι τιμές DATE (ΗΜΕΡΟΜΗΝΙΑ), TIME (ΩΡΑ), SECONDDATE (ΔΕΥΤΕΡΗ ΗΜΕΡΟΜΗΝΙΑ) και TIMESTAMP διαφέρουν ως προς την ακρίβεια που διατηρούν.
  • 🔢 Αριθμητικό εύρος: Οι συναρτήσεις TINYINT έως BIGINT καλύπτουν ακέραιους αριθμούς, ενώ οι συναρτήσεις DECIMAL, SMALLDECIMAL, REAL και DOUBLE χειρίζονται κλάσματα.
  • 🔤 Συμβολοσειρές χαρακτήρων: Το VARCHAR περιέχει byte και το NVARCHAR περιέχει χαρακτήρες Unicode, και τα δύο περιορισμένα σε 5000.
  • 📦 Μεγάλα αντικείμενα: Τα BLOB, CLOB, NCLOB, TEXT και BINTEXT αποθηκεύουν δεδομένα που είναι πολύ μεγάλα για μια κανονική στήλη.
  • 🔍 Ενεργοποιημένη αναζήτηση: Τα TEXT, BINTEXT και SHORTTEXT υποστηρίζουν αναζήτηση πλήρους κειμένου, αλλά μόνο σε πίνακες αποθήκευσης στηλών.
  • ✍️ Αναγνωριστικά: Τα οριοθετημένα αναγνωριστικά βρίσκονται μέσα σε διπλά εισαγωγικά και δέχονται οποιονδήποτε χαρακτήρα. Τα μη οριοθετημένα αναγνωριστικά πρέπει να ξεκινούν με γράμμα.
  • Κανόνας Προσφοράς: Τα μονά εισαγωγικά οριοθετούν μια τιμή συμβολοσειράς και τα διπλά εισαγωγικά οριοθετούν ένα αναγνωριστικό.

SAP Τύποι δεδομένων HANA

Σε αυτή τη 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;

Τέσσερα σφάλματα ευθύνονται για τα περισσότερα προβλήματα μετατροπής:

  1. Αριθμητική υπερχείλιση. Η εισαγωγή του 40000 σε ένα SMALLINT αποτυγχάνει επειδή το υπογεγραμμένο εύρος σταματά στο 32,767. Το μήνυμα ονομάζει τη στήλη και όχι την τιμή, επομένως ελέγξτε πρώτα τον ορισμό.
  2. Περικοπή συμβολοσειράς. Η φόρτωση κειμένου μεγαλύτερου από το δηλωμένο μήκος δημιουργεί σφάλμα αντί να το αποκόπτει σιωπηλά. Μετρήστε τους χαρακτήρες σε σχέση με το NVARCHAR και τα byte σε σχέση με το VARCHAR.
  3. Μη έγκυρη μορφή ημερομηνίας. Η μεταβίβαση μιας συμβολοσειράς με λάθος μοτίβο στην TO_DATE αποτυγχάνει. Να παρέχετε πάντα τη μάσκα μορφοποίησης αντί να βασίζεστε στην προεπιλεγμένη ρύθμιση της περιόδου σύνδεσης.
  4. Έμμεση μετατροπή σε μια ρήτρα WHERE. Η σύγκριση μιας στήλης χαρακτήρων με έναν αριθμό επιβάλλει μια μετατροπή σε κάθε γραμμή, η οποία εμποδίζει το αποτελεσματικό φιλτράρισμα. Μετατρέψτε τη σταθερά αντί για τη στήλη.

Τα σύμβολα σύγκρισης που χρησιμοποιούνται σε αυτά τα φίλτρα καλύπτονται στο SAP Χειριστές HANAκαι την ευρύτερη πλατφόρμα στο SAP Εκπαιδευτικό σεμινάριο HANA σειρές.

Συχνές Ερωτήσεις

Το VARCHAR μετρά το όριό του σε byte και το NVARCHAR σε χαρακτήρες Unicode. Για οποιοδήποτε κείμενο που μπορεί να περιέχει χαρακτήρες που δεν είναι ASCII, το NVARCHAR είναι η ασφαλής επιλογή επειδή δεν θα περικοπεί απροσδόκητα.

Χρησιμοποιήστε τη συνάρτηση SECONDDATE όταν η ακρίβεια δευτέρου επιπέδου είναι αρκετή, κάτι που καλύπτει τα περισσότερα επιχειρηματικά συμβάντα. Η συνάρτηση TIMESTAMP προσθέτει κλασματικά δευτερόλεπτα και κοστίζει περισσότερο χώρο αποθήκευσης σε κάθε γραμμή ενός μεγάλου πίνακα.

Ναι. Η δημιουργία προφίλ ενός αρχείου πηγαίου κώδικα αποκαλύπτει πραγματικά εύρη τιμών, μήκη και μορφές, από τα οποία η Τεχνητή Νοημοσύνη προτείνει τον μικρότερο ασφαλή τύπο για κάθε στήλη αντί για μια υπερμεγέθη αμυντική προεπιλογή.

Ναι. Η σύγκριση των δηλωμένων μηκών με τις τιμές που είναι πραγματικά αποθηκευμένες επισημαίνει στήλες που θα μπορούσαν να συρρικνωθούν, κάτι που έχει σημασία επειδή κάθε στήλη ενός πίνακα HANA διατηρείται στη μνήμη.

Τα TEXT, BINTEXT και SHORTTEXT παρέχουν δυνατότητες αναζήτησης κειμένου. Και τα τρία περιορίζονται σε πίνακες αποθήκευσης στηλών και δεν μπορούν να οριστούν σε έναν πίνακα αποθήκευσης γραμμών.

Συνοψίστε αυτήν την ανάρτηση με: