INSERT ROWTYPE

Hallo,

ist es möglich, das ich eine variable vom typ ROWTYPE auf einen schlag speichere, ohne das ich bei einem INSERT alle felder nochmal aufliste ?



DECLARE
tab1 tabelle1%ROWTYPE;
BEGIN
tab1.id := next_global_guid();
tab1.name := ‘Franz’;
tab1.vorname := ‘Xaver’;

– und jetzt die informationen von tab1
– in der tabelle1 speichern
INSERT INTO tabelle1 VALUES(tab1.id,tab1.name,tab1.vorname);
– am besten auf einmal wie z.B. INSERT tab1 INTO tabelle1;

END

Hallo henrik,

die Syntax-Beschreibung von INSERT sagt doch ja. Bedingung in diesem Fall ist aber, dass in VALUES für alle Spalten der Tabelle ein Wert steht!



INSERT INTO tabelle1 VALUES(tab1.id,tab1.name,tab1.vorname);

Diese Form ist richtig!



INSERT tab1 INTO tabelle1

Na ja, schon mal überlegt, woher INSERT wissen soll, welche Werte eingefügt werden sollen?



mfg

fristo

Naja, wenn ich aber einen tabelle1%ROWTYPE definiere sind die werte ja festgelegt wie eine zeile in der tabelle.

Habs noch nicht direkt ausgetestet, weil meine funktion noch nicht fertig ist, aber erstellen lässt sie sich mit der Syntax
INSERT INTO tabelle1 VALUES(tab1);

also denk ich schon, das es klappt , aber das seh ich morgen in der arbeit.

mfg
henrik

Klappt anscheinend nicht so wie ich mir das vorgestellt habe :frowning:

Und wie sieht jetzt Deine Lösunge aus?



mfg

fristo

ist jetzt halt ein ganz normaler insert bei dem ich die felder einzeln angebe.

INSERT INTO tabelle1 VALUES(tab1.id,tab1.name,tab1.vorname);

oder halt

INSERT INTO tabelle1 (id,name,vorname)
VALUES(tab1.id,tab1.name,tab1.vorname);

evtl kommt sowas noch in einer späteren version, wäre für faule menschen wie mich klasse. :slight_smile:

mfg
henrik[/code]