| Variablen und deren Deklaration |
|
|
| Donnerstag, 16. Oktober 2008 um 14:40 | ||||
|
Variablen sind die Namen, die wir PL/SQL Elementen geben, wie Tabellen, Cursorn oder Records.
Wenn Sie einen Variablennamen wählen, sollte dieser so gut wie möglich die Bedeutung der Variablen im Algorithmus beschreiben. Versuchen Sie stets, lesbare Namen zu wählen. PL/SQL erlaubt die Nutzung des _ im Namen, so dass es recht einfach ist, lesbare Namen zu erzeugen. Jede Konstante und Variable, die in Ihrem Programm definiert wird, hat einen Datentyp. Der Datentyp bestimmt das Speicherformat und Einschränkungen, wie die Variable genutzt werden kann und welche Werte sie enthalten kann. Ein skalarer Datentyp ist atomar, das heißt, der Datentyp besteht aus keinen weiteren Datentypen. PL/SQL erlaubt mehrere sogenannte zusammengesetzten Datentypen, dazu gehören Tabellen und Records. Dazu aber später mehr. Skalare Datentypen gehören zu einer der folgenden vier Familien: Number, Character, Boolean und Date. Wir wollen an dieser Stelle die Datentypen nicht weiter beschreiben, die ORACLE Dokumentation gibt einen gründlichen Überblick. Wir beschreiben die Datentypen, wenn sie im folgenden genutzt werden. Haben Variablen einen Initialwert?Dies ist eine häufig gestellte Frage und wir können Sie eindeutig beantworten: Ja, unabhängig vom Datentyp ist es NULL. Damit taucht die Frage auf, was denn NULL ist?
Jetzt ist es raus! Behalten Sie nur drei Dinge im Hinterkopf über NULL-Werte:
Diese Feststellung ist deshalb so wichtig, weil bei der Deklaration von Variablen, – unabhängig davon, welchen Typ sie hat -, die Variable mit NULL initialisiert wird. Das ist ein wichtiger Unterschied zu Programmiersprachen, wo z.B. die numerische Null der Initialwert ist. DeklarationBevor eine Variable referenziert, sprich genutzt werden kann, muß sie definiert werden. Wenn eine Variable deklariert wird, allokiert PL/SQL den notwendigen Speicher für das Ablegen des Variablenwerts. Die Syntax zur Variablendeklaration ist variable_name datatype [optional assignment]; Beispiel age_of_person number := 31; Die vorgenommene Wertzuweisung ist optional. Wird kein Initialwert zugewiesen, ist der Initialwert unabhängig vom Datentyp NULL. Unsere Deklaration kann unbeschränkt (unbounded) oder beschränkt (bounded) sein. Das bedeutet, dass wir die Mächtigkeit, bzw. Größe der möglichen Werte einschränken. Unsere NUMBER Variable aus obigem Beispiel unterstützt bis zu 38 Stellen. Wenn wir die Variable beschränken mit number(2), allokiert PL/SQL nur soviel Platz, um zweistellige Zahlen abzulegen. Beispiel age_of_person number(2) := 31; Auch komplexe Ausdrücke sind möglich: zu_spaet_ueberwiesen boolean := sysdate > zahlungsdatum + 5; KonstantenWollen Sie Konstanten deklarieren, geschieht das wie folgt: pi constant number := 3.141; Denken Sie daran, dass Sie Konstanten im ausführbaren Teil keine Werte mehr zuweisen dürfen, daher muss eine Wertzuweisung im Deklarationsteil erfolgen. Die Wertzuweisung erfolgt entweder über := oder das Schlüsselwort DEFAULT SubtypenEs ist weiterhin möglich, neue Datentypen auf Basis vorhandener Typen zu definieren und Variablen dieses Typen zu erzeugen: subtype zweistellig is number(2); Da Sie sicherlich häufig mit Variablen arbeiten, um Daten aus Tabellen zu nutzen, ist die verankerte Variablendeklaration eleganter. Verankerte DeklarationVerankerte (anchored) Deklaration bedeutet, daß wir die %TYPE-Deklaration nutzen. PL/SQL verankert den Datentyp der Variablen am Typ einer anderen Struktur, normalerweise der Spalte einer Tabelle. Der Vorteil der Verankerung ist, dass PL/SQL Code nicht modifiziert werden muß, wenn der referenzierte Datentyp sich verändert. Beispiel: age_of_person number := 31; age_of_person2 age_of_person%TYPE; Genauso können Sie sich auf den Datentyp einer Spalte einer Tabelle beziehen. Beispiel: age_of_person mytable.mycolumn%TYPE; Tips zum Umgang mit Variablen
Beachten Sie auch folgende Besonderheit Beispiel: DECLARE Dieser Block terminiert erfolgreich, der Compiler meldet keinen Fehler. Die Besonderheit ist, dass erst bei der Verwendung der Variablen im ausführbaren Teil des Programms ein Fehler gemeldet wird. Dieser Artikel beschreibt lediglich die Deklaration von skalaren Variablen. Es gibt aber auch komplexe Datentypen, denen wir uns später zuwenden.
|
||||
| Aktualisiert ( Donnerstag, 14. Januar 2010 um 18:30 ) | ||||


Kommentare
age_of_person number(2) = 31; nicht
age_of_person number(2) := 31;
heißen?
Grüße Martin Zitieren
Alle Kommentare dieses Beitrages als RSS-Feed.