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;
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
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.