Avatar billede alsted Nybegynder
26. september 2002 - 09:53 Der 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;
Avatar billede teepee Nybegynder
26. september 2002 - 09:58 #1
7, 8, eller 9?
Avatar billede alsted Nybegynder
26. september 2002 - 10:01 #2
Ja, dete er desværre kun i version 8.1.6
Avatar billede teepee Nybegynder
26. september 2002 - 10:09 #3
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...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester