Insert mit SELECT und sequence numbers

eagle1985

Mitglied
Hallo zusammen,

habe ein Problem bei einem Insert-Statement. Ich möchte Werte aus einem Select-Statement in eine andere Tabelle einfügen.

Das Problem ist nun, dass der PKEY aus einer autosequenz stammt und übergeben werden muss. Oracle ist da leider nicht so tolerant mit auto numbers wie andere Datenbanken :(

Hat jemand eine Ahnung wie das geht? die nextVal funktion klappt in einem normalen Insert mit Values problemlos nur im SELECT gehts nicht rein.

Möchte gerne sowas haben:
SQL:
INSERT INTO
   tTable
VALUES (pkey.nextval, (SELECT * FROM tTable2 WHERE...))

Gruss
 
Zuletzt bearbeitet von einem Moderator:
VALUES und SELECT * innerhalb des INSERT ist eh ein komisches Konstrukt

Versuchs mal mit
SQL:
INSERT INTO tTable (id, Feld1, Feld2)
(   SELECT 
        pkey.NEXTVAL AS id, 
        t2.Feld1,
        t2.feld2
    FROM 
        tTable2 AS t2 
    WHERE...)
 
Zuletzt bearbeitet von einem Moderator:
Hi Danke für den Typ,

geht leider auch nicht. Es erscheint immernoch die Meldung ORA-02287: sequence number not allowed here

NEXTVAL klappt nicht inerhalb des SELECTs...
 
Habe Rausgefunden, dass die NEXVAL in ORACLE DISTINCT und GROUP BY nicht mögen und es daher nicht geklappt hat, da sich bei mir noch ein Distinct in Select eingeschlichen hat
 

Neue Beiträge

Zurück