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.