Joerg Bencke: SQL abfrage hängt db auf

Beitrag lesen

hi leute,

Hi Wowbagger,

UPDATE Prod, test_include SET Prod.Preis = [test_include]![Preis]
WHERE (((Prod.IdentNr) Like 'P_'+[test_include]![Ident]));

das Problem liegt wahrscheinlich in dem Update von 2 Tabellen. (Hab kein Access hier)
In Oracle musst Du obiges übere in Join machen oder ueber ein Subquery. Aussedem solltest Du moeglichst = anstatt Like verwendern
(wenn es geht wg. Case Unterschieden etc, da like etwas langsamer sein soll.Gleichs gilt für die "exists" Funktion unten.)

Z.B: (Bei den String Funktionen bin ich mir nicht ganz sicher, in Oracle ist es "")
update prod set prod.preis = (select preis from test_include where prod.IdentNr = 'P' + test_include.Ident)
where exists (select Ident from test_include where prod.IdentNr = 'P' + test_include.Ident)

Um es direkter zu machen benotigtst Du Joins, aber die versuche ich in Updates imemr zu vermeiden ;-)

Viel Glueck, Joerg