Eine der Spalten in Ihrer Zieltabelle (leaves_approval) enthält eine Identitätsspalte, die als generiert wurde. Immer generiert.
Identitätsspalten können in zwei Modi angelegt werden - immer generiert, dass nicht zugewiesen und standardmäßig generiert werden kann dass kann zugeordnet werden.
Bei Bedarf können Sie den Spaltenmodus und den Einsatz dann tun ändern können „wie es ist“.
Beachten Sie, dass dies möglicherweise doppelte Einträge in der Identitätsspalte erzeugt oder aufgrund von Einschränkungen fehlschlägt.
ALTER TABLE leaves_approval MODIFY **my_identity_column** GENERATED BY DEFAULT AS IDENTITY;
Oder Sie können die Identitätsspalte von der INSERT-Liste auszuschließen sind (aber Sie werden die vollständige Spaltenliste, mit Ausnahme der Identitätsspalte angeben müssen), z.B. -
INSERT INTO leaves_approval (c1,c2,c3,c4,...)
SELECT c1,c2,c3,c4 ...
FROM requests_temp r
WHERE r.civil_number = 33322
AND r.request_id = (SELECT Max(s.request_id)
FROM requests_temp s)
Database SQL Language Reference - CREATE TABLE
ALWAYS If you specify ALWAYS, then Oracle Database always uses the sequence generator to assign a value to the column. If you attempt to explicitly assign a value to the column using INSERT or UPDATE, then an error will be returned. This is the default.
BY DEFAULT If you specify BY DEFAULT, then Oracle Database uses the sequence generator to assign a value to the column by default, but you can also explicitly assign a specified value to the column. If you specify ON NULL, then Oracle Database uses the sequence generator to assign a value to the column when a subsequent INSERT statement attempts to assign a value that evaluates to NULL.