PLSQL-Datentyp

PLSQL-Datentypen werden zur Spezifikation von PL/SQL-Variablen und Konstanten im Deklarationsteil verwendet. Es sind im wesentlichen die gleichen Datentypen wie in SQL mit Ausnahme u.a. von BOOLEAN, RECORD?, %ROWTYPE, %TYPE und REF CURSOR.

Bei Wertzuweisungen, Parameterübergaben, Vergleichsoperatoren? und sonstigen Anweisungen, bei denen mehrere Ausdrücke in Beziehung zu einander stehen, muss darauf geachtet werden, dass die beteiligten Ausdrücke über gleiche oder zumindest kompatible Datentypen verfügen. Oracle bietet für viele "verwandte" Datentypen eine recht komfortable automatische Typkonvertierung an. Wenn eine solche nicht gegeben ist, stehen noch die Typkonvertierungsfunktionen zur Verfügung.

Hier ein nur ein kleiner Auszug möglicher Datentypen:

Skalare DatentypenBeschreibung
BOOLEANkann Werte TRUE, FALSE oder UNKONWN annehmen
BINARY_INTEGERganzzahlige Zahlenwerte für schnellere Verarbeitung
BLOBbinary large object
BFILEZeiger auf eine large object-Datei außerhalb des DBS
CHARSQL-CHAR-Typ, Textdatentyp fester Länge
CLOBcharacter large object
DATEDatum mit Uhrzeit
INTERVALZeitraum zwischen zwei Zeitstempeln
NCLOBcharacter large object mit Unicode-Zeichen
NUMBERnumerischer Datentyp mit Nachkommastellen
PLS_INTEGERganzzahlige Zahlenwerte für schnellere Verarbeitung
RECORD?zusammengesetzter Datentyp als Datensatz
REF Zeiger auf einen selbstdefinierten Datentyp
REF CURSORZeiger auf einen selbstdefinierten Cursor
ROWID?Datentyp für Speicheradresse eines Datensatzes
TIMESTAMPwie DATETIME
TYPEbenutzerdefinierte Datentypen
TYPE ... IS VARRAYein ARRAY fester Länge
TYPE ... IS RECORD?zusammengesetzter Datentyp als Datensatz
TYPE ... IS TABLEeindimensionales Array variabler Länge, bei dem auch Tabellen als Datentyp in der Klammer eingetragen werden können
VARCHARSQL-VARCHAR-Typ, Textdatentyp variabler Länge
VARCHAR2wie VARCHAR nur Oracle-spezifisch
%ROWTYPEkomplette Tabellenstuktur für die Datentsatzvariable
%TYPESpaltendefinitione für die Variable/Konstante
......

Diese Auswahl läßt sich durch benutzerdefinierte Datentypen noch beliebig erweitern.

siehe auch: CREATE-TYPE

Quellen:

  • Faeskorn-Woyke, Heide; Bertelsmeier, Birgit; Riemer, Petra; Bauer, Elena: "Datenbanksysteme - Theorie und Praxis mit SQL2003, Oracle und MySQL", Pearson Education, München, 2007, ISBN 978-3-8273-7266-6
  • Feuerstein, Steven, Pribyl. Bill: "Oracle PL/SQL Programming", O'Reilly, 2009, ISBN-13: 978-0596514464
  • Oracle® Database SQL Language Reference 11g Release 1 (11.1) in http://docs.oracle.com/cd/B28359_01/server.111/b28286/toc.htm
  • Oracle® Database PL/SQL Language Reference 11g Release 2 (11.2) in http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/toc.htm
  • Saurabh, Gupta: "Oracle Advanced PL/SQL Developer Professional Guide", Packt Publishing Limited, 2012, ISBN 978-1-84968-722-5

Kategorie: Oracle-PL-SQL, SQL, Objektrelationales SQL, D