Beispiel für eine datensatzbasierte Einfügung:
DECLARE
my_book books%ROWTYPE;
BEGIN
my_book.isbn :='1-123456-123-1';
my_book.title :='Fox Infotech Blogs';
my_book.summary :='Fox-Beispiele';
my_book.author :='V. Kapoor';
my_book.page_count :=300;
INSERT INTO books VALUES my_book;
END;
/
Beachten Sie, dass Sie keine Klammern um den Datensatzbezeichner einfügen . Wenn Sie dieses Format verwenden:
INSERT INTO books VALUES (my_book); -- Mit Klammern, UNGÜLTIG!
dann erhalten Sie eine Ausnahme ORA-00947:nicht genügend Werte, da das Programm einen separaten Ausdruck für jede Spalte in der Tabelle erwartet.
Beispiel für datensatzbasierte Aktualisierung:
Sie können auch Aktualisierungen einer ganzen Zeile mit einem Datensatz durchführen. Im folgenden Beispiel wird eine Zeile in der Tabelle books mit einem %ROWTYPE-Datensatz aktualisiert. Beachten Sie, dass ich das Schlüsselwort ROW verwende, um anzuzeigen, dass ich die gesamte Zeile mit einem Datensatz aktualisiere:
DECLARE
my_book books%ROWTYPE;
BEGIN
my_book.isbn :='1-123456-123-1';
my_book.title :='Fox Infotech Blogs';
my_book.summary :='Fox-Beispiele';
my_book.author :='V. Kapoor';
my_book.page_count :=300;
UPDATE books
SET ROW =my_book
WHERE isbn =my_book.isbn;
END;
/
Es gibt einige Einschränkungen für datensatzbasierte Updates:
Sie können keine Aktualisierung mit einer Unterabfrage durchführen.
Und falls Sie sich fragen, Sie können keine Tabellenspalte namens ROW erstellen.