Avatar billede diyar Nybegynder
20. december 2008 - 11:56 Der er 1 kommentar og
1 løsning

MERGE INTO med DELETE

Hej, jeg vil gerne indsætte og slette i min tabel fra en forspørgsel ved hjælp af MERGE INTO, men når jeg bruger DELETE, kommer den med fejl.
Jeg har en tabel der hedder OMU_DATABASE, lad os nu antage at der er 2 række i:
SERVER_NAME  DATABASE_NAME
server1      database1
server1      database2

Jeg vil have det således at merge into bruge min forspørgsel, hvis not matched så slet den række, og bagefter insert det der ikke matcher.

MERGE INTO OMU_DATABASE O USING
      (SELECT    'server1' SERVER_NAME,'database1' DATABASE_NAME
      FROM DUAL) L
      ON (L.SERVER_NAME = O.SERVER_NAME AND L.DATABASE_NAME = O.DATABASE_NAME)
      WHEN NOT MATCHED THEN
      INSERT VALUES
      (L.SERVER_NAME, L.DATABASE_NAME)
      DELETE WHERE (O.SERVER_NAME != L.SERVER_NAME AND O.DATABASE_NAME != L.DATABASE_NAME)

jeg vil gerne slette række 2, men jeg får en fejl på den der DELETE (ORA-00905: manglende nøgleord)
Avatar billede pgroen Nybegynder
21. december 2008 - 17:30 #1
Hvilken version kører du ?
- såvidt jeg husker, kan man først lave Merge-Delete i 10'eren...
Avatar billede diyar Nybegynder
10. november 2011 - 10:55 #2
Lukker lige denne spørgsmål
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