AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit MERGE Befehl
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit MERGE Befehl

Ein Thema von s.h.a.r.k · begonnen am 10. Jul 2010 · letzter Beitrag vom 12. Jul 2010
 
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#8

AW: Problem mit MERGE Befehl

  Alt 10. Jul 2010, 15:42
Das Problem scheint irgendwie damit zusammenzuhängen, dass bei dem inneren Select (teilweise) eine leer Menge heraus gekommen ist. Wenn ich das MERGE nun so gestalte, dass immer mindestens ein Datensatz in dieser Menge steckt, so funktioniert es.

// edit...

Oracle ist ja mal so eine drecks tolle (*hust*) Datenbank. Das hier geht:
SQL-Code:
MERGE INTO "TdmUser" D
   USING (
      SELECT *
      FROM "TdmUser"
      WHERE "UserID" = 70
    OR "UserID" = -1) S
   
   ON (D."UserID" = S."UserID" AND D."UserID" <> -1)
   
   WHEN MATCHED THEN
      UPDATE SET D."Username" = 'update'
      
   WHEN NOT MATCHED THEN
      INSERT (D."Username", D."Disabled")
      VALUES ('inserta', 0);
Und das hier nicht:
SQL-Code:
MERGE INTO "TdmUser" D
   USING (
      SELECT *
      FROM "TdmUser"
      WHERE "Username" = 'test'
    OR "UserID" = -1) S
   
   ON (D."Username" = S."Username" AND D."UserID" <> -1)
   
   WHEN MATCHED THEN
      UPDATE SET D."Username" = 'update'
      
   WHEN NOT MATCHED THEN
      INSERT (D."Username", D."Disabled")
      VALUES ('inserta', 0);
Tja, und jetzt wird es sehr interessant: wo liegt der Unterschied?! Lediglich darin, dass das eine (UserID) ein NUMBER und das andere (Username) ein VARCHAR2-Feld ist. WTF?!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von mkinzler (10. Jul 2010 um 18:39 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz