Nach den folgenden Typen erstellt;ORACLE: INSERT INTO WERTE der Objekttypsammlung
CREATE OR REPLACE TYPE OBJ_TYPE AS OBJECT
(FLAG DATE
, NUMB NUMBER(2,0)
, VARC VARCHAR2(40 BYTE));
/
CREATE OR REPLACE TYPE TBL_OBJ_TYPE AS TABLE OF OBJ_TYPE;
/
Ich möchte einfach den Datensatz in eine Tabelle einfügen;
DECLARE
DATA_SET TBL_OBJ_TYPE := TBL_OBJ_TYPE();
BEGIN
FOR REC IN (SELECT * FROM TBL_01)
LOOP
DATA_SET.EXTEND;
DATA_SET(DATA_SET.COUNT) :=
OBJ_TYPE(1
, REC.TBL_01_COL1
, REC.TBL_01_COL2);
END LOOP;
FORALL REC IN DATA_SET.FIRST..DATA_SET.LAST
INSERT INTO TBL_02
VALUES (DATA_SET(REC).FLAG --listed column
, DATA_SET(REC).NUMB --listed column
, DATA_SET(REC).VARC); --listed column
END;
Dies funktioniert gut, aber ist es irgendwie möglich, die „Werte“ Klausel zu ändern, in dem Quellobjekt zu benennen jedes Attribut zu vermeiden? Ich möchte etwas in der Art:
VALUES DATA_SET(REC)
Jede Hilfe wird sehr geschätzt.
Hallo kordirko, du bist offensichtlich richtig auf dem Systemdatum, nur vergessen zu ändern. Aber wie auch immer, gibt es einen Weg, dem zu folgen, was ich erwähnt habe; FORALL + INSERT IN Tabelle VALUES -> mit Sammlung ohne Angabe jedes Spaltennamens anstelle der SELECT-Klausel? – RafalK