|
Inhalt Oracle PL/SQL
PL/SQL Block
Bildschirmausgaben
PL/SQL Datentypen
Deklarationen
Operatoren
Funktionen
Ablaufsteuerung
SQL in PL/SQL
Fehlerbehandlung
Tables
Packages
Oracle PL/SQL-Bücher
Impressum
|
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
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
|