TAKTUM Logo


Oracle Schulung
Oracle Schulung

Oracle PL/SQL Tutorial: Datentypen
Verwendbare Datentypen in PL/SQL

 BINARY_INTEGER 

  • Ganze Zahlen von -2147483647 bis 2147483647
  • Verbraucht weniger Speicherplatz als NUMBER
  • Subtypen: NATURAL, NATURALN, POSITIVE, POSITIVEN

NUMBER [ (<Länge>, <Nachkommastellen>) ]

  • Numerische Werte von 1.0E-129 .. 9.99E125
  • maximale Länge 38
  • Nachkommastellen von -84 bis 127
    => automatische Rundung
  • Beispiel: NUMBER (5,2)
    => drei Vorkomma- und zwei Nachkommastellen
  • Subtypen: DECIMAL, INTEGER, REAL, SMALLINT

PLS_INTEGER

  • Ganze Zahlen von -2147483647 bis 2147483647
  • Verbraucht weniger Speicherplatz als NUMBER
  • Schneller als BINARY_INTEGER und NUMBER

CHAR [ (<Länge>) ]

  • Zeichenkette fester Länge (in Bytes)
  • Maximale Länge 32767 Bytes
  • Maximale Länge in der Datenbank 255 Bytes (ab Oracle8: 2000)
  • Ggf. mit Leerzeichen aufgefüllt
  • Subtyp: CHARACTER

LONG [ (<Länge>) ]

  • Zeichenkette variabler Länge (in Bytes)
  • Maximale Länge 32760 Bytes
  • Maximale Länge in der Datenbank 2GB

RAW [ (<Länge>) ]

  • Binärdaten variabler Länge (in Bytes)
  • Maximale Länge 32767 Bytes
  • Maximale Länge in der Datenbank 255 Bytes (ab Oracle 8: 2000)

LONG RAW [ (<Länge>) ]

  • Binärdaten variabler Länge (in Bytes)
  • Maximale Länge 32760 Bytes
  • Maximale Länge in der Datenbank 2GB

VARCHAR2 [ (<Länge>) ]

  • Zeichenkette variabler Länge (in Bytes)
  • Maximale Länge 32767 Bytes
  • Maximale Länge in der Datenbank 2000 Bytes (ab Oracle8: 4000)
  • Subtypen: STRING, VARCHAR

BOOLEAN

  • Werte TRUE, FALSE, NULL

DATE

  • Datum und Uhrzeit sekundengenau
  • Wertebereich 01.01.4712 v. Chr. bis 31.12.9999 n. Chr.

Vergleich zwischen CHAR und VARCHAR2

Bei Zuweisungen werden CHAR-Variablen mit Leerzeichen aufgefüllt. Das führt dazu, daß bei Vergleichen von CHAR-Werten nachfolgende Leerzeichen unberücksichtigt bleiben. Da in VARCHAR2 nachfolgende Leerzeichen so erhalten bleiben, wie sie zugewiesen werden, führt ein Vergleich zu anderen Ergebnissen:

declare
s1 char(5) := '12';   -- ohne nachfolgende Leerzeichen
s2 char(5) := '12 ';  -- mit nachfolgenden Leerzeichen
=> s1 = s2 ist TRUE

declare
s1 varchar2(5) := '12';   -- ohne Leerzeichen
s2 varchar2(5) := '12 ';  -- mit Leerzeichen
=> s1 = s2 ist FALSE

Beim Einfügen von Werten in die Datenbank, werden CHAR - Spalten mit Leerzeichen aufgefüllt, VARCHAR2-Spalten nicht. Sie behalten ihren Wert, der ihnen zuvor zugewiesen wurde. Nachfolgende Leerzeichen bleiben erhalten.

CHAR-Werte benötigen für jedes definierte Zeichen Speicherplatz. VARCHAR-Werte benötigen für jedes verwendete Zeichen Speicherplatz.

Beispiel:

s char(100) := '1234567890'     100 Bytes

s varchar2(100) := '1234567890' 10 Bytes



Stichwörter

Datentypen Datentyp Typ Typen number char varchar varchar2 date boolean long raw binary_integer pls_integer Beispiel Beispiele