Oracle PL/SQL-Datentypen: Boolescher Wert, Zahl, Datum [Beispiel]

Was sind PL/SQL-Datentypen?

Datentypen in PL/SQL werden verwendet, um zu definieren, wie die Daten gespeichert, verarbeitet und behandelt werden Oracle wรคhrend der Datenspeicherung und -verarbeitung. Datentypen sind mit dem spezifischen Speicherformat und den Bereichseinschrรคnkungen verknรผpft. In Oraclewird jedem Wert bzw. jeder Konstante ein Datentyp zugewiesen.

Der Hauptunterschied zwischen PL/SQL und SQL Datentypen sind, dass SQL-Datentypen auf Tabellenspalten beschrรคnkt sind, wรคhrend die PL/SQL-Datentypen in verwendet werden PL/SQL-Blรถcke. Mehr dazu spรคter im Tutorial.

Nachfolgend sehen Sie das Diagramm der verschiedenen Oracle PL/SQL-Datentypen:

PL/SQL-Datentypen
Verschiedene Datentypen in PL/SQL

PL/SQL CHARACTER-Datentyp

Dieser Datentyp speichert grundsรคtzlich alphanumerische Zeichen im String-Format.

Die Literalwerte sollten bei der Zuweisung zum Datentyp CHARACTER immer in einfache Anfรผhrungszeichen gesetzt werden.

Dieser Zeichendatentyp wird weiter wie folgt klassifiziert:

  • CHAR Datentyp (feste StringgrรถรŸe)
  • VARCHAR2 Datentyp (variable StringgrรถรŸe)
  • VARCHAR-Datentyp
  • NCHAR (native feste ZeichenfolgengrรถรŸe)
  • NVARCHAR2 (native variable ZeichenfolgengrรถรŸe)
  • LANG und LANG ROH
Dateityp Beschreibung Syntax
VERKOHLEN Dieser Datentyp speichert den Zeichenfolgenwert und die GrรถรŸe der Zeichenfolge wird zum Zeitpunkt der Deklaration festgelegt Variable.

  • Oracle Daher wรผrde die Variable mit Leerzeichen aufgefรผllt, wenn die Variable nicht die gesamte fรผr sie deklarierte GrรถรŸe einnehmen wรผrde Oracle reserviert den Speicher fรผr die angegebene GrรถรŸe, auch wenn die Variable ihn nicht vollstรคndig belegt hat.
  • Die GrรถรŸenbeschrรคnkung fรผr diesen Datentyp betrรคgt 1-2000 Byte.
  • Der Datentyp CHAR ist besser geeignet, wenn eine bestimmte DatengrรถรŸe verarbeitet werden soll.
grade CHAR;
manager CHAR (10):= 'guru99';

Syntaxerklรคrung:

  • Die erste Deklarationsanweisung deklarierte die Variable โ€žgradeโ€œ vom Datentyp CHAR mit der maximalen GrรถรŸe von 1 Byte (Standardwert).
  • Die zweite Deklarationsanweisung deklarierte die Variable โ€žmanagerโ€œ vom Datentyp CHAR mit der maximalen GrรถรŸe von 10 und wies den Wert โ€žguru99โ€œ zu, der 6 Bytes groรŸ ist. Oracle In diesem Fall wird der Speicher 10 statt 6 Bytes zugewiesen.
VARCHAR2 Dieser Datentyp speichert die Zeichenfolge, die Lรคnge der Zeichenfolge ist jedoch nicht festgelegt.

  • Die GrรถรŸenbeschrรคnkung fรผr diesen Datentyp betrรคgt 1โ€“4000 Byte fรผr die TabellenspaltengrรถรŸe und 1โ€“32767 Byte fรผr Variablen.
  • Die GrรถรŸe wird fรผr jede Variable zum Zeitpunkt der Variablendeklaration definiert.
  • Doch Oracle reserviert erst dann Speicher, wenn die Variable definiert ist, d. h. Oracle berรผcksichtigt nur die tatsรคchliche Lรคnge der Zeichenfolge, die in einer Variablen fรผr die Speicherzuweisung gespeichert ist, und nicht die GrรถรŸe, die fรผr eine Variable im Deklarationsteil angegeben wurde.
  • Es empfiehlt sich immer, den Datentyp VARCHAR2 anstelle des Datentyps CHAR zu verwenden, um die Speichernutzung zu optimieren.
manager VARCHAR2(10) := โ€˜guru99';

Syntaxerklรคrung:

  • Die obige Deklarationsanweisung hat die Variable โ€žmanagerโ€œ vom Datentyp VARCHAR2 mit der maximalen GrรถรŸe von 10 deklariert und den Wert โ€žguru99โ€œ zugewiesen, der 6 Byte groรŸ ist. Oracle reserviert in diesem Fall nur 6 Byte Speicher.
VARCHAR Dies ist gleichbedeutend mit dem Datentyp VARCHAR2.

  • Es empfiehlt sich immer, VARCHAR2 anstelle von VARCHAR zu verwenden, um Verhaltensรคnderungen zu vermeiden.
manager VARCHAR(10) := โ€˜guru99';

Syntaxerklรคrung:

  • Die obige Deklarationsanweisung hat die Variable โ€žmanagerโ€œ vom Datentyp VARCHAR mit der maximalen GrรถรŸe von 10 deklariert und den Wert โ€žguru99โ€œ zugewiesen, der 6 Byte groรŸ ist. Oracle reserviert in diesem Fall nur 6 Byte Speicher. (ร„hnlich wie VARCHAR2)
NCHAR Dieser Datentyp ist derselbe wie der CHAR-Datentyp, der Zeichensatz entspricht jedoch dem nationalen Zeichensatz.

  • Dieser Zeichensatz kann mit NLS_PARAMETERS fรผr die Sitzung definiert werden.
  • Der Zeichensatz kann entweder UTF16 oder UTF8 sein.
  • Die GrรถรŸenbeschrรคnkung betrรคgt 1-2000 Byte.
native NCHAR(10);

Syntaxerklรคrung:

  • Die obige Deklarationsanweisung deklariert die Variable โ€žnativeโ€œ vom NCHAR-Datentyp mit der maximalen GrรถรŸe von 10.
  • Die Lรคnge dieser Variablen hรคngt von der (Anzahl der Lรคngen) pro Byte ab, wie im Zeichensatz definiert.
NVARCHAR2 Dieser Datentyp ist derselbe wie der Datentyp VARCHAR2, der Zeichensatz entspricht jedoch dem nationalen Zeichensatz.

  • Dieser Zeichensatz kann mit NLS_PARAMETERS fรผr die Sitzung definiert werden.
  • Der Zeichensatz kann entweder UTF16 oder UTF8 sein.
  • Die GrรถรŸenbeschrรคnkung betrรคgt 1-4000 Byte.
Native var NVARCHAR2(10):='guru99';

Syntaxerklรคrung:

  • Die obige Deklarationsanweisung deklariert die Variable โ€žNative_varโ€œ vom Datentyp NVARCHAR2 mit der maximalen GrรถรŸe von 10.
LANG und LANG Dieser Datentyp wird zum Speichern groรŸer Text- oder Rohdaten bis zu einer maximalen GrรถรŸe von 2 GB verwendet.

  • Diese werden hauptsรคchlich im Datenwรถrterbuch verwendet.
  • Der Datentyp LONG wird zum Speichern von Zeichensatzdaten verwendet, wรคhrend LONG RAW zum Speichern von Daten im Binรคrformat verwendet wird.
  • Der RAW-Datentyp LONG akzeptiert Medienobjekte, Bilder usw., wรคhrend LONG nur mit Daten funktioniert, die mithilfe eines Zeichensatzes gespeichert werden kรถnnen.
Large_text LONG;
Large_raw LONG RAW;

Syntaxerklรคrung:

  • Die obige Deklarationsanweisung deklariert die Variable โ€žLarge_textโ€œ vom Datentyp LONG und โ€žLarge_rawโ€œ vom Datentyp LONG RAW.

Hinweis: Die Verwendung des Datentyps LONG wird von nicht empfohlen Oracle. Stattdessen sollte der Datentyp LOB bevorzugt werden.

PL/SQL NUMBER-Datentyp

Dieser Datentyp speichert Fest- oder Gleitkommazahlen mit einer Genauigkeit von bis zu 38 Stellen. Dieser Datentyp wird fรผr die Arbeit mit Feldern verwendet, die nur Zahlendaten enthalten. Die Variable kann entweder mit Genauigkeits- und Dezimalstellendetails oder ohne diese Informationen deklariert werden. Werte mรผssen bei der Zuweisung fรผr diesen Datentyp nicht in Anfรผhrungszeichen gesetzt werden.

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

Syntaxerklรคrung:

  • Oben erklรคrt die erste Deklaration, dass die Variable โ€žAโ€œ vom Zahlendatentyp mit einer Gesamtgenauigkeit von 8 und 2 Dezimalstellen ist.
  • Die zweite Deklaration gibt an, dass die Variable โ€žBโ€œ vom Datentyp โ€žZahlโ€œ mit einer Gesamtgenauigkeit von 8 und ohne Dezimalstellen ist.
  • Die dritte Deklaration ist die allgemeinste. Sie deklariert die Variable โ€žCโ€œ als Zahlendatentyp ohne Einschrรคnkung hinsichtlich Genauigkeit oder Dezimalstellen. Sie kann maximal 38 Ziffern enthalten.

PL/SQL BOOLEAN-Datentyp

Dieser Datentyp speichert die logischen Werte. Oracle Der boolesche Datentyp stellt entweder WAHR oder FALSCH dar und wird hauptsรคchlich in bedingten Anweisungen verwendet. Bei der Zuweisung fรผr diesen Datentyp mรผssen Werte nicht in Anfรผhrungszeichen gesetzt werden.

Var1 BOOLEAN;

Syntaxerklรคrung:

  • Oben ist die Variable โ€žVar1โ€œ als Datentyp BOOLEAN deklariert. Die Ausgabe des Codes ist je nach festgelegter Bedingung entweder wahr oder falsch.

PL/SQL-DATE-Datentyp

Dieser Datentyp speichert die Werte im Datumsformat, als Datum, Monat und Jahr. Immer wenn eine Variable mit dem Datentyp DATE zusammen mit dem Datum definiert wird, kann sie Zeitinformationen enthalten. StandardmรครŸig werden Zeitinformationen auf 12:00:00 gesetzt, wenn keine Angabe erfolgt. Werte mรผssen bei der Zuweisung fรผr diesen Datentyp in Anfรผhrungszeichen gesetzt werden.

Die Standard Oracle Das Zeitformat fรผr Ein- und Ausgabe ist โ€žTT-MON-JJโ€œ und wird auf Sitzungsebene wiederum auf NLS_PARAMETERS (NLS_DATE_FORMAT) festgelegt.

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

Syntaxerklรคrung:

  • Oben wurde die Variable โ€žnewyearโ€œ als Datentyp DATE deklariert und ihr wurde der Wert โ€ž1. Januarโ€œ zugewiesenst, Datum 2015.
  • Die zweite Deklaration deklariert die Variable current_date als DATE-Datentyp und weist ihr den Wert mit dem aktuellen Systemdatum zu.
  • Diese beiden Variablen enthalten die Zeitinformationen.

PL/SQL LOB-Datentyp

Dieser Datentyp wird hauptsรคchlich zum Speichern und Bearbeiten groรŸer Blรถcke unstrukturierter Daten wie Bilder, Multimediadateien usw. verwendet. Oracle bevorzugt LOB anstelle eines LONG-Datentyps, da dieser flexibler ist als der LONG-Datentyp. Im Folgenden sind einige Hauptvorteile des LOB-Datentyps gegenรผber dem LONG-Datentyp aufgefรผhrt.

  • Die Anzahl der Spalten in einer Tabelle mit dem Datentyp LONG ist auf 1 begrenzt, wohingegen eine Tabelle keine Beschrรคnkung auf die Anzahl der Spalten mit dem Datentyp LOB hat.
  • Das Datenschnittstellentool akzeptiert wรคhrend der Datenreplikation den Datentyp LOB der Tabelle, lรคsst jedoch die Spalte LONG der Tabelle aus. Diese LONG-Spalten mรผssen manuell repliziert werden.
  • Die GrรถรŸe der LONG-Spalte betrรคgt 2 GB, wรคhrend LOB bis zu 128 TB speichern kann.
  • Oracle verbessert den LOB-Datentyp in jeder seiner Versionen stรคndig entsprechend den modernen Anforderungen, wรคhrend der LONG-Datentyp konstant ist und nicht viele Updates erhรคlt.

Daher ist es immer gut, den LOB-Datentyp anstelle des LONG-Datentyps zu verwenden. Im Folgenden sind die verschiedenen LOB-Datentypen aufgefรผhrt. Sie kรถnnen bis zu einer GrรถรŸe von 128 Terabyte speichern.

  1. BLOB
  2. CLOB und NCLOB
  3. BFILE
Dateityp Beschreibung Syntax
BLOB Dieser Datentyp speichert die LOB-Daten im Binรคrdateiformat bis zu einer maximalen GrรถรŸe von 128 TB. Dabei werden keine Daten basierend auf den Zeichensatzdetails gespeichert, sodass unstrukturierte Daten wie Multimediaobjekte, Bilder usw. gespeichert werden kรถnnen.
Binary_data BLOB;

Syntaxerklรคrung:

  • Oben ist die Variable โ€žBinary_dataโ€œ als BLOB deklariert.
CLOB und NCLOB Der Datentyp CLOB speichert die LOB-Daten im Zeichensatz, wรคhrend NCLOB die Daten im nativen Zeichensatz speichert. Da diese Datentypen eine zeichensatzbasierte Speicherung verwenden, kรถnnen sie keine Daten wie Multimedia, Bilder usw. speichern, die nicht in eine Zeichenfolge eingefรผgt werden kรถnnen. Die maximale GrรถรŸe dieser Datentypen betrรคgt 128 TB.
Charac_data CLOB;

Syntaxerklรคrung:

  • Oben ist die Variable โ€žCharac_dataโ€œ als CLOB-Datentyp deklariert.
BFILE
  • BFILE sind die Datentypen, die die unstrukturierten Daten im Binรคrformat auรŸerhalb der Datenbank als Betriebssystemdatei speichern.
  • Die GrรถรŸe der BFILE ist auf ein Betriebssystem beschrรคnkt. Es handelt sich um schreibgeschรผtzte Dateien, die nicht geรคndert werden kรถnnen.

Zusammenfassung

Wir haben die verschiedenen einfachen Datentypen behandelt, die in verfรผgbar sind PL / SQL zusammen mit ihrer Syntax. In weiteren Themen lernen wir mehr รผber komplexe Datentypen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: