Databases Reference
In-Depth Information
ARTIKEL_NR BEZEICHNUNG BESTELLMENGE
---------- --------------- ------------
K002 Hose 3
G001 Whisky 4
G003 Bier 3
K003 Damenhut 1
L002 China-Tee 10
9.3.7 Schreiboperationen in Objekttabellen
Wir haben bereits vorgeführt, wie man Daten in eine Objekttabelle einfügt. Weitere
Schreiboperationen sind Änderungen an vorhandenen Objekten und Löschungen.
Das Löschen von Daten aus Objekttabellen geht genauso vor sich wie bei der rela-
tionalen Variante. Der folgende Befehl löscht die Bestellung 151:
DELETE FROM otab_bestellung
WHERE bestell_nr = 151;
Damit werden gleichzeitig die Positionsdaten in der eingebetteten Tabelle
gelöscht. Eine Besonderheit gibt es bei eingebetteten Tabellen. Hier muss eine Sub-
query mit dem Typkonstruktor TABLE verwendet werden. Der folgende Befehl
löscht alle Positionen der Bestellung 151:
DELETE FROM TABLE (SELECT b.positionen
FROM otab_bestellung b
WHERE b.bestell_nr =151);
Das Ändern von Daten mit dem UPDATE-Befehl unterliegt einigen Besonderhei-
ten, wenn es sich nicht um skalare Attribute handelt, sondern Attribute, die auf
einem benutzerdefinierten Typ beruhen. Im Falle der Kundenadresse haben wir
ein Attribut auf Basis des Typs otyp_adresse mit innerer Struktur definiert. Der
Zugriff auf eine einzelne Komponente erfolgt mit der »Punktnotation«:
update otab_kunde k
set k.adresse.strasse = 'neue Strasse 3'
WHERE kunden_nr = 103;
Der Tabellenalias k darf dabei nicht fehlen. Erlaubt ist auch die Anwendung des
UPDATE-Befehls auf eine konstruierte Tabelle, die Resultat einer Abfrage ist.
update (SELECT kunden_nr, k.adresse.strasse strasse,
k.adresse.plz
FROM otab_kunde k
WHERE kunden_nr = 103)
set strasse = 'neue Strasse 4';
 
Search WWH ::




Custom Search