26. september 2002 - 09:53Der er
2 kommentarer og 1 løsning
Dup_val_on_index
Jeg har et problem med dup_val_on_index. Jeg ønsker at kopiere en TABLE_A over i TABLE_B, men når der er exception dup_val_on_index, så vil jeg opdatere rækken i stedet. Altså:
BEGIN INSERT INTO TABLE_A (SELECT * FROM TABLE_B; EXCEPTION WHEN dup_val_on_index THEN -- Her vil jeg gerne update i stedet for at indsætte. END;
Tjah, måske skulle du lave en lave to sql statements, først en som updaterer eksisterende rækker, og dernæst en som indsætter ikke-eksisterende rækker, for det er jo hele statementen der fejler i pl/sql og ikke som i C, hvor den fejler på rowlevel.
update table_a ta set (felt1, felt2, felt3) = (select felt1, felt2, felt3 from table_b tb where tb.key = ta.key)
insert into table_a select * from table_b tb where not exists (select * from table_a ta where ta.key = tb.key)
Eller sådan noget lignende...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.