Oracle PL / SQL-Datentypen: Boolescher Wert, Nummer, Datum (Beispiel)

Inhaltsverzeichnis:

Anonim

Was sind PL / SQL-Datentypen?

Ein Datentyp ist dem spezifischen Speicherformat und den Bereichsbeschränkungen zugeordnet. In Oracle wird jedem Wert oder jeder Konstante ein Datentyp zugewiesen.

Grundsätzlich wird definiert, wie die Daten während der Datenspeicherung und -verarbeitung von Oracle gespeichert, verarbeitet und behandelt werden.

Der Hauptunterschied zwischen PL / SQL- und SQL-Datentypen besteht darin, dass der SQL-Datentyp auf die Tabellenspalte beschränkt ist, während die PL / SQL-Datentypen in den PL / SQL-Blöcken verwendet werden. Mehr dazu später im Tutorial.

Es folgt das Diagramm der verschiedenen Datentypen in PL / SQL

In diesem Tutorial lernen Sie:

  • CHARACTER-Datentyp
  • NUMBER Datentyp
  • BOOLEAN-Datentyp
  • DATE Datentyp
  • LOB-Datentyp

CHARACTER Datentyp:

Dieser Datentyp speichert grundsätzlich alphanumerische Zeichen im Zeichenfolgenformat.

Die Literalwerte sollten immer in einfache Anführungszeichen gesetzt werden, während sie dem Datentyp CHARACTER zugewiesen werden.

Dieser Zeichendatentyp wird weiter wie folgt klassifiziert:

  • CHAR Datentyp (feste Zeichenfolgengröße)
  • VARCHAR2 Datentyp (variable Zeichenfolgengröße)
  • VARCHAR Datentyp
  • NCHAR (native feste Stringgröße)
  • NVARCHAR2 (native variable Zeichenfolgengröße)
  • LONG und LONG RAW
Datentyp Beschreibung Syntax
VERKOHLEN Dieser Datentyp speichert den Zeichenfolgenwert und die Größe der Zeichenfolge ist zum Zeitpunkt der Deklaration der Variablen festgelegt.
  • Oracle würde die Variable mit Leerzeichen auffüllen, wenn die Variable nicht die gesamte Größe einnimmt, die für sie deklariert wurde. Daher weist Oracle den Speicher für die deklarierte Größe zu, selbst wenn die Variable sie nicht vollständig belegt.
  • Die Größenbeschränkung für diesen Datentyp beträgt 1-2000 Byte.
  • Der Datentyp CHAR ist besser geeignet, wenn die festgelegte Datengröße verwendet wird.
grade CHAR;manager CHAR (10):= 'guru99';
Syntax Erläuterung:
  • Die erste Deklarationsanweisung deklarierte die Variable 'grade' des CHAR-Datentyps mit der maximalen Größe von 1 Byte (Standardwert).
  • Die zweite Deklarationsanweisung deklarierte die Variable 'manager' vom CHAR-Datentyp mit der maximalen Größe von 10 und wies den Wert 'guru99' zu, der 6 Bytes beträgt. Oracle weist in diesem Fall den Speicher von 10 Bytes anstelle von 6 Bytes zu.
VARCHAR2 Dieser Datentyp speichert die Zeichenfolge, aber die Länge der Zeichenfolge ist 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.
  • Oracle weist den Speicher jedoch erst zu, nachdem die Variable definiert wurde. Das heißt, 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 ist immer gut, VARCHAR2 anstelle des Datentyps CHAR zu verwenden, um die Speichernutzung zu optimieren.
manager VARCHAR2(10) := ‘guru99';
Syntax Erläuterung:
  • Die obige Deklarationsanweisung deklarierte die Variable 'manager' vom Datentyp VARCHAR2 mit der maximalen Größe von 10 und wies den Wert 'guru99' zu, der 6 Bytes beträgt. Oracle weist in diesem Fall nur 6 Byte Speicher zu.
VARCHAR Dies ist gleichbedeutend mit dem Datentyp VARCHAR2.
  • Es ist immer eine gute Praxis, VARCHAR2 anstelle von VARCHAR zu verwenden, um Verhaltensänderungen zu vermeiden.
manager VARCHAR(10) := ‘guru99';
Syntax Erläuterung:
  • Die obige Deklarationsanweisung deklarierte die Variable 'manager' vom Datentyp VARCHAR mit der maximalen Größe von 10 und wies den Wert 'guru99' zu, der 6 Bytes beträgt. Oracle weist in diesem Fall nur 6 Byte Speicher zu. (Ähnlich wie VARCHAR2)
NCHAR Dieser Datentyp ist der gleiche 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 Bytes.
native NCHAR(10);
Syntax Erläuterung:
  • Die obige Deklarationsanweisung deklariert die Variable 'native' des NCHAR-Datentyps 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 mit dem Datentyp VARCHAR2 identisch, 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 Bytes.
Native var NVARCHAR2(10):='guru99';
Syntax Erläuterung:
  • Die obige Deklarationsanweisung deklariert die Variable 'Native_var' des NVARCHAR2-Datentyps mit der maximalen Größe von 10.
LANG und LANG Dieser Datentyp wird zum Speichern von großem 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 der Datentyp LONG RAW zum Speichern von Daten im Binärformat verwendet wird.
  • Der Datentyp LONG RAW akzeptiert Medienobjekte, Bilder usw., während LONG nur für Daten funktioniert, die mithilfe eines Zeichensatzes gespeichert werden können.
Large_text LONG;Large_raw LONG RAW;
Syntax Erläuterung:
  • Die obige Deklarationsanweisung deklariert die Variable 'Large_text' vom LONG-Datentyp und 'Large_raw' vom LONG RAW-Datentyp.
Hinweis: Die Verwendung des Datentyps LONG wird von Oracle nicht empfohlen. Stattdessen sollte der LOB-Datentyp bevorzugt werden.

NUMBER Datentyp:

Dieser Datentyp speichert Fest- oder Gleitkommazahlen mit einer Genauigkeit von bis zu 38 Stellen. Dieser Datentyp wird verwendet, um mit Feldern zu arbeiten, die nur Zahlendaten enthalten. Die Variable kann entweder mit Genauigkeit und Dezimalstellendetails oder ohne diese Informationen deklariert werden. Werte müssen beim Zuweisen für diesen Datentyp nicht in Anführungszeichen gesetzt werden.

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

Syntax Erläuterung:

  • Oben deklariert die erste Deklaration, dass die Variable 'A' vom Datentyp "Zahl" mit einer Gesamtgenauigkeit von 8 und Dezimalstellen 2 ist.
  • Die zweite Deklaration deklariert, dass die Variable 'B' vom Datentyp "Zahl" mit einer Gesamtgenauigkeit von 8 und ohne Dezimalstellen ist.
  • Die dritte Deklaration ist die allgemeinste und deklariert, dass die Variable 'C' vom Datentyp "Zahl" ohne Einschränkung der Genauigkeit oder der Dezimalstellen ist. Es kann maximal 38 Stellen dauern.

BOOLEAN Datentyp:

Dieser Datentyp speichert die logischen Werte. Es stellt entweder TRUE oder FALSE dar und wird hauptsächlich in bedingten Anweisungen verwendet. Werte müssen beim Zuweisen für diesen Datentyp nicht in Anführungszeichen gesetzt werden.

Var1 BOOLEAN;

Syntax Erläuterung:

  • Oben wird die Variable 'Var1' als BOOLEAN-Datentyp deklariert. Die Ausgabe des Codes ist je nach festgelegter Bedingung entweder wahr oder falsch.

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 ist, kann sie Zeitinformationen enthalten, und standardmäßig werden die Zeitinformationen auf 12:00:00 gesetzt, wenn nichts angegeben ist. Werte müssen bei der Zuweisung für diesen Datentyp in Anführungszeichen gesetzt werden.

Das Standard-Oracle-Zeitformat für die Eingabe und Ausgabe lautet "TT-MON-JJ" und wird auf Sitzungsebene erneut auf NLS_PARAMETERS (NLS_DATE_FORMAT) festgelegt.

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

Syntax Erläuterung:

  • In der obigen Variable ‚newyear‘ als DATE - Datentyp deklariert und den Wert von 1. Januar zugewiesen st 2015 Datum.
  • Die zweite Deklaration deklariert die Variable current_date als Datentyp DATE und weist dem Wert das aktuelle Systemdatum zu.
  • Diese beiden Variablen enthalten die Zeitinformationen.

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 als der LONG-Datentyp ist. Im Folgenden sind die wenigen Hauptvorteile von LOB gegenüber dem Datentyp LONG aufgeführt.

  • Die Anzahl der Spalten in einer Tabelle mit dem Datentyp LONG ist auf 1 begrenzt, während in einer Tabelle die Anzahl der Spalten mit dem Datentyp LOB nicht eingeschränkt ist.
  • Das Datenschnittstellentool akzeptiert den LOB-Datentyp der Tabelle während der Datenreplikation, lässt jedoch die LONG-Spalte der Tabelle weg. 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 entsprechend den modernen Anforderungen ständig, während der LONG-Datentyp konstant ist und nicht viele Aktualisierungen erhält.

Es ist also 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 128 Terabyte speichern.

  1. KLECKS
  2. CLOB und NCLOB
  3. BFILE
Datentyp Beschreibung Syntax
KLECKS

Dieser Datentyp speichert die LOB-Daten im Binärdateiformat bis zu einer maximalen Größe von 128 TB. Dadurch werden keine Daten basierend auf den Zeichensatzdetails gespeichert, sodass unstrukturierte Daten wie Multimedia-Objekte, Bilder usw. gespeichert werden können.

Binary_data BLOB;

Syntax Erläuterung:

  • Oben wird die Variable 'Binary_data' als BLOB deklariert.
CLOB und NCLOB

Der CLOB-Datentyp speichert die LOB-Daten im Zeichensatz, während NCLOB die Daten im nativen Zeichensatz speichert. Da diese Datentypen auf Zeichensätzen basierenden Speicher verwenden, können diese 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;

Syntax Erläuterung:

  • Oben wird 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 gespeichert haben.
  • Die Größe von BFILE ist auf ein begrenztes Betriebssystem beschränkt. Es handelt sich um schreibgeschützte Dateien, die nicht geändert werden können.

Zusammenfassung

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