Τύποι δεδομένων Oracle PL / SQL: Boolean, Number, Date (Παράδειγμα)

Πίνακας περιεχομένων:

Anonim

Τι είναι οι τύποι δεδομένων PL / SQL;

Ένας τύπος δεδομένων σχετίζεται με τη συγκεκριμένη μορφή αποθήκευσης και τους περιορισμούς εύρους. Στο Oracle, κάθε τιμή ή σταθερά αντιστοιχίζεται με έναν τύπο δεδομένων.

Βασικά, καθορίζει τον τρόπο αποθήκευσης, χειρισμού και επεξεργασίας των δεδομένων από την Oracle κατά την αποθήκευση και επεξεργασία των δεδομένων.

Η κύρια διαφορά μεταξύ των τύπων δεδομένων PL / SQL και SQL είναι, ο τύπος δεδομένων SQL περιορίζεται στη στήλη πίνακα ενώ οι τύποι δεδομένων PL / SQL χρησιμοποιούνται στα μπλοκ PL / SQL. Περισσότερα για αυτό αργότερα στο σεμινάριο.

Ακολουθεί το διάγραμμα διαφορετικών τύπων δεδομένων στο PL / SQL

Σε αυτό το σεμινάριο, θα μάθετε-

  • Τύπος δεδομένων CHARACTER
  • ΑΡΙΘΜΟΣ Τύπος δεδομένων
  • Τύπος δεδομένων BOOLEAN
  • Τύπος δεδομένων DATE
  • Τύπος δεδομένων LOB

Τύπος δεδομένων CHARACTER:

Αυτός ο τύπος δεδομένων αποθηκεύει βασικά αλφαριθμητικούς χαρακτήρες σε μορφή συμβολοσειράς.

Οι κυριολεκτικές τιμές θα πρέπει πάντα να περικλείονται σε μεμονωμένα εισαγωγικά, ενώ τις αντιστοιχούν στον τύπο δεδομένων CHARACTER.

Αυτός ο τύπος δεδομένων χαρακτήρων ταξινομείται περαιτέρω ως εξής:

  • Τύπος δεδομένων CHAR (σταθερό μέγεθος συμβολοσειράς)
  • VARCHAR2 Τύπος δεδομένων (μεταβλητό μέγεθος συμβολοσειράς)
  • Τύπος δεδομένων VARCHAR
  • NCHAR (εγγενές σταθερό μέγεθος συμβολοσειράς)
  • NVARCHAR2 (εγγενές μέγεθος συμβολοσειράς μεταβλητής)
  • ΜΑΚΡΟ ΚΑΙ ΜΑΚΡΟ ΑΚΡΙ
Τύπος δεδομένων Περιγραφή Σύνταξη
ΑΠΑΝΘΡΑΚΩΝΩ Αυτός ο τύπος δεδομένων αποθηκεύει την τιμή συμβολοσειράς και το μέγεθος της συμβολοσειράς καθορίζεται τη στιγμή της δήλωσης της μεταβλητής.
  • Η Oracle θα ήταν κενή με τη μεταβλητή εάν η μεταβλητή δεν καταλάμβανε ολόκληρο το μέγεθος που έχει δηλωθεί γι 'αυτό. Ως εκ τούτου, η Oracle θα εκχωρήσει τη μνήμη για το δηλωμένο μέγεθος ακόμη και αν η μεταβλητή δεν την κατέλαβε πλήρως.
  • Ο περιορισμός μεγέθους για αυτόν τον τύπο δεδομένων είναι 1-2000 byte.
  • Ο τύπος δεδομένων CHAR είναι πιο κατάλληλος για χρήση όπου έχει καθοριστεί ποτέ το χειρισμό του μεγέθους των δεδομένων.
grade CHAR;manager CHAR (10):= 'guru99';
Επεξήγηση σύνταξης:
  • Η πρώτη δήλωση δήλωσης δηλώνει τη μεταβλητή «βαθμός» του τύπου δεδομένων CHAR με το μέγιστο μέγεθος 1 byte (προεπιλεγμένη τιμή).
  • Στη δεύτερη δήλωση δήλωσης δηλώθηκε η μεταβλητή «διαχειριστής» του τύπου δεδομένων CHAR με το μέγιστο μέγεθος 10 και εκχωρήθηκε η τιμή «γκουρού99» που είναι 6 byte. Η Oracle θα εκχωρήσει τη μνήμη των 10 byte αντί για 6 byte σε αυτήν την περίπτωση.
ΒΑΡΚΑΡΗ2 Αυτός ο τύπος δεδομένων αποθηκεύει τη συμβολοσειρά, αλλά το μήκος της συμβολοσειράς δεν είναι σταθερό.
  • Ο περιορισμός μεγέθους για αυτόν τον τύπο δεδομένων είναι 1-4000 byte για μέγεθος στήλης πίνακα και 1-32767 byte για μεταβλητές.
  • Το μέγεθος ορίζεται για κάθε μεταβλητή τη στιγμή της δήλωσης μεταβλητής.
  • Αλλά η Oracle θα εκχωρήσει μνήμη μόνο μετά τον καθορισμό της μεταβλητής, δηλαδή, η Oracle θα εξετάσει μόνο το πραγματικό μήκος της συμβολοσειράς που είναι αποθηκευμένη σε μια μεταβλητή για εκχώρηση μνήμης και όχι το μέγεθος που έχει δοθεί για μια μεταβλητή στο τμήμα δήλωσης.
  • Είναι πάντα καλό να χρησιμοποιείτε το VARCHAR2 αντί για τον τύπο δεδομένων CHAR για να βελτιστοποιήσετε τη χρήση της μνήμης.
manager VARCHAR2(10) := ‘guru99';
Επεξήγηση σύνταξης:
  • Η παραπάνω δήλωση δήλωσης δηλώνει τη μεταβλητή «διαχειριστής» του τύπου δεδομένων VARCHAR2 με το μέγιστο μέγεθος 10 και εκχωρείται η τιμή «γκουρού99» που είναι 6 byte. Η Oracle θα διαθέσει μνήμη μόνο 6 byte σε αυτήν την περίπτωση.
ΒΑΡΚΑΡ Αυτό είναι συνώνυμο με τον τύπο δεδομένων VARCHAR2.
  • Είναι πάντα καλή πρακτική να χρησιμοποιείτε το VARCHAR2 αντί για το VARCHAR για να αποφεύγετε αλλαγές στη συμπεριφορά.
manager VARCHAR(10) := ‘guru99';
Επεξήγηση σύνταξης:
  • Η παραπάνω δήλωση δήλωσης δηλώνει τη μεταβλητή «διαχειριστής» του τύπου δεδομένων VARCHAR με το μέγιστο μέγεθος 10 και εκχωρεί την τιμή «γκουρού99» που είναι 6 byte. Η Oracle θα διαθέσει μνήμη μόνο 6 byte σε αυτήν την περίπτωση. (Παρόμοιο με το VARCHAR2)
ΝΧΑΡ Αυτός ο τύπος δεδομένων είναι ίδιος με τον τύπο δεδομένων CHAR, αλλά το σύνολο χαρακτήρων του εθνικού συνόλου χαρακτήρων.
  • Αυτό το σύνολο χαρακτήρων μπορεί να οριστεί για τη συνεδρία χρησιμοποιώντας NLS_PARAMETERS.
  • Το σύνολο χαρακτήρων μπορεί να είναι είτε UTF16 είτε UTF8.
  • Ο περιορισμός μεγέθους είναι 1-2000 byte.
native NCHAR(10);
Επεξήγηση σύνταξης:
  • Η παραπάνω δήλωση δήλωσης δηλώνει τη μεταβλητή «εγγενής» του τύπου δεδομένων NCHAR με το μέγιστο μέγεθος 10.
  • Το μήκος αυτής της μεταβλητής εξαρτάται από το (αριθμός μήκους) ανά byte όπως ορίζεται στο σύνολο χαρακτήρων.
NVARCHAR2 Αυτός ο τύπος δεδομένων είναι ίδιος με τον τύπο δεδομένων VARCHAR2, αλλά το σύνολο χαρακτήρων θα είναι του εθνικού συνόλου χαρακτήρων.
  • Αυτό το σύνολο χαρακτήρων μπορεί να οριστεί για τη συνεδρία χρησιμοποιώντας NLS_PARAMETERS.
  • Το σύνολο χαρακτήρων μπορεί να είναι είτε UTF16 είτε UTF8.
  • Ο περιορισμός μεγέθους είναι 1-4000 byte.
Native var NVARCHAR2(10):='guru99';
Επεξήγηση σύνταξης:
  • Η παραπάνω δήλωση δήλωσης δηλώνει τη μεταβλητή "Native_var" του τύπου δεδομένων NVARCHAR2 με το μέγιστο μέγεθος 10.
LONG και LONGRAW Αυτός ο τύπος δεδομένων χρησιμοποιείται για την αποθήκευση μεγάλου κειμένου ή πρωτογενών δεδομένων έως το μέγιστο μέγεθος των 2 GB.
  • Αυτά χρησιμοποιούνται κυρίως στο λεξικό δεδομένων.
  • Ο τύπος δεδομένων LONG χρησιμοποιείται για την αποθήκευση δεδομένων συνόλου χαρακτήρων, ενώ το LONG RAW χρησιμοποιείται για την αποθήκευση δεδομένων σε δυαδική μορφή.
  • Ο τύπος δεδομένων LONG RAW δέχεται αντικείμενα μέσων, εικόνες κ.λπ. ενώ το LONG λειτουργεί μόνο σε δεδομένα που μπορούν να αποθηκευτούν χρησιμοποιώντας σύνολο χαρακτήρων.
Large_text LONG;Large_raw LONG RAW;
Επεξήγηση σύνταξης:
  • Η παραπάνω δήλωση δήλωσης δηλώνει τη μεταβλητή «Large_text» του τύπου δεδομένων LONG και «Large_raw» του τύπου δεδομένων LONG RAW.
Σημείωση: Η χρήση τύπου LONG δεδομένων δεν συνιστάται από την Oracle. Αντ 'αυτού, ο τύπος δεδομένων LOB πρέπει να προτιμάται.

ΑΡΙΘΜΟΣ Τύπος δεδομένων:

Αυτός ο τύπος δεδομένων αποθηκεύει αριθμούς σταθερού ή κυμαινόμενου σημείου έως 38 ψηφία ακριβείας. Αυτός ο τύπος δεδομένων χρησιμοποιείται για να λειτουργεί με πεδία που θα περιέχουν μόνο αριθμητικά δεδομένα. Η μεταβλητή μπορεί να δηλωθεί είτε με λεπτομέρειες ακρίβειας και δεκαδικού ψηφίου είτε χωρίς αυτές τις πληροφορίες. Οι τιμές δεν χρειάζεται να περικλείονται σε εισαγωγικά κατά την εκχώρηση για αυτόν τον τύπο δεδομένων.

A NUMBER(8,2);B NUMBER(8);C NUMBER;

Επεξήγηση σύνταξης:

  • Στα παραπάνω, η πρώτη δήλωση δηλώνει ότι η μεταβλητή «Α» είναι αριθμού τύπου δεδομένων με συνολική ακρίβεια 8 και δεκαδικά ψηφία 2.
  • Η δεύτερη δήλωση δηλώνει ότι η μεταβλητή «B» είναι αριθμού τύπου δεδομένων με συνολική ακρίβεια 8 και χωρίς δεκαδικά ψηφία.
  • Η τρίτη δήλωση είναι η πιο γενική, δηλώνει ότι η μεταβλητή «C» είναι αριθμού τύπου δεδομένων χωρίς περιορισμό σε ακρίβεια ή δεκαδικά ψηφία. Μπορεί να διαρκέσει έως και 38 ψηφία.

Τύπος δεδομένων BOOLEAN:

Αυτός ο τύπος δεδομένων αποθηκεύει τις λογικές τιμές. Αντιπροσωπεύει είτε TRUE είτε FALSE και χρησιμοποιείται κυρίως σε δηλώσεις υπό όρους. Οι τιμές δεν χρειάζεται να περικλείονται σε εισαγωγικά κατά την εκχώρηση για αυτόν τον τύπο δεδομένων.

Var1 BOOLEAN;

Επεξήγηση σύνταξης:

  • Στα παραπάνω, η μεταβλητή «Var1» δηλώνεται ως τύπος δεδομένων BOOLEAN. Η έξοδος του κώδικα θα είναι είτε αληθής είτε ψευδής με βάση το σύνολο συνθηκών.

Τύπος δεδομένων DATE:

Αυτός ο τύπος δεδομένων αποθηκεύει τις τιμές σε μορφή ημερομηνίας, ως ημερομηνία, μήνα και έτος. Κάθε φορά που μια μεταβλητή ορίζεται με τον τύπο δεδομένων DATE μαζί με την ημερομηνία μπορεί να διατηρεί πληροφορίες ώρας και από προεπιλογή οι πληροφορίες ώρας ορίζονται στις 12:00:00, εάν δεν καθορίζονται. Οι τιμές πρέπει να περικλείονται εντός εισαγωγικών κατά την εκχώρηση για αυτόν τον τύπο δεδομένων.

Η τυπική μορφή ώρας της Oracle για είσοδο και έξοδο είναι «DD-MON-YY» και έχει οριστεί ξανά στα NLS_PARAMETERS (NLS_DATE_FORMAT) σε επίπεδο συνεδρίας.

newyear DATE:='01-JAN-2015';current_date DATE:=SYSDATE;

Επεξήγηση σύνταξης:

  • Στο παραπάνω, μεταβλητή «newyear» έχει χαρακτηριστεί ως ο τύπος DATE δεδομένων και λαμβάνει την τιμή της 1ης Ιανουαρίου st , 2015 ημερομηνία.
  • Η δεύτερη δήλωση δηλώνει τη μεταβλητή current_date ως τύπο δεδομένων DATE και εκχώρησε την τιμή με την τρέχουσα ημερομηνία συστήματος.
  • Και οι δύο αυτές μεταβλητές διατηρούν τις πληροφορίες του χρόνου.

Τύπος δεδομένων LOB:

Αυτός ο τύπος δεδομένων χρησιμοποιείται κυρίως για την αποθήκευση και τον χειρισμό μεγάλων τμημάτων μη δομημένων δεδομένων, όπως εικόνων, αρχείων πολυμέσων κ.λπ. Η Oracle προτιμά το LOB αντί του τύπου LONG δεδομένου ότι είναι πιο ευέλικτο από τον τύπο δεδομένων LONG. Τα παρακάτω είναι τα λίγα κύρια πλεονεκτήματα του LOB έναντι του LONG τύπου δεδομένων.

  • Ο αριθμός στηλών σε έναν πίνακα με LONG τύπο δεδομένων περιορίζεται σε 1, ενώ ένας πίνακας δεν έχει περιορισμό σε έναν αριθμό στηλών με τύπο δεδομένων LOB.
  • Το εργαλείο διεπαφής δεδομένων δέχεται τον τύπο δεδομένων LOB του πίνακα κατά την αναπαραγωγή δεδομένων, αλλά παραλείπει τη στήλη LONG του πίνακα. Αυτές οι LONG στήλες πρέπει να αναπαραχθούν χειροκίνητα.
  • Το μέγεθος της στήλης LONG είναι 2 GB, ενώ το LOB μπορεί να αποθηκεύσει έως και 128 TB.
  • Η Oracle βελτιώνει συνεχώς τον τύπο δεδομένων LOB σε κάθε κυκλοφορία του σύμφωνα με τις σύγχρονες απαιτήσεις, ενώ ο τύπος δεδομένων LONG είναι σταθερός και δεν λαμβάνει πολλές ενημερώσεις.

Επομένως, είναι πάντα καλό να χρησιμοποιείτε τύπο δεδομένων LOB αντί για τον τύπο δεδομένων LONG. Ακολουθούν οι διαφορετικοί τύποι δεδομένων LOB. Μπορούν να αποθηκεύσουν έως και 128 terabyte.

  1. ΑΜΟΡΦΗ ΜΑΖΑ
  2. CLOB και NCLOB
  3. ΠΡΟΦΙΛ
Τύπος δεδομένων Περιγραφή Σύνταξη
ΑΜΟΡΦΗ ΜΑΖΑ

Αυτός ο τύπος δεδομένων αποθηκεύει τα δεδομένα LOB σε μορφή δυαδικού αρχείου έως το μέγιστο μέγεθος των 128 TB. Αυτό δεν αποθηκεύει δεδομένα με βάση τις λεπτομέρειες του συνόλου χαρακτήρων, έτσι ώστε να μπορεί να αποθηκεύει τα μη δομημένα δεδομένα, όπως αντικείμενα πολυμέσων, εικόνες κ.λπ.

Binary_data BLOB;

Επεξήγηση σύνταξης:

  • Στα παραπάνω, η μεταβλητή «Binary_data» δηλώνεται ως BLOB.
CLOB και NCLOB

Ο τύπος δεδομένων CLOB αποθηκεύει τα δεδομένα LOB στο σύνολο χαρακτήρων, ενώ το NCLOB αποθηκεύει τα δεδομένα στο σύνολο εγγενών χαρακτήρων. Δεδομένου ότι αυτοί οι τύποι δεδομένων χρησιμοποιούν χώρο αποθήκευσης βάσει συνόλου χαρακτήρων, δεν μπορούν να αποθηκεύσουν δεδομένα όπως πολυμέσα, εικόνες κ.λπ. Το μέγιστο μέγεθος αυτών των τύπων δεδομένων είναι 128 TB.

Charac_data CLOB;

Επεξήγηση σύνταξης:

  • Στα παραπάνω, η μεταβλητή "Charac_data" δηλώνεται ως τύπος δεδομένων CLOB.
ΠΡΟΦΙΛ
  • Το BFILE είναι οι τύποι δεδομένων που αποθηκεύουν τα δεδομένα δομής δυαδικής μορφής εκτός της βάσης δεδομένων ως αρχείο λειτουργικού συστήματος.
  • Το μέγεθος του BFILE αφορά ένα περιορισμένο λειτουργικό σύστημα και είναι αρχεία μόνο για ανάγνωση και δεν μπορούν να τροποποιηθούν.

Περίληψη

Έχουμε καλύψει τους διαφορετικούς απλούς τύπους δεδομένων που διατίθενται σε PL / SQL μαζί με τη σύνταξή τους. Θα μάθουμε για πολύπλοκους τύπους δεδομένων σε περαιτέρω θέματα.