ich komme mal wieder nicht mehr weiter bei folgendem Code
UPDATE wlbm SET abbnr = 'FALSE'
WHERE atbnr =1_str_wlbm_sapmatnr-atbnr
Dabei habe ich im Feld atbnr eine Artikelnummer die zum Beispiel 008120 lautet
und aktuell im Zugriff in 1_str_wlbm_sapmatnr-atbnr habe ich den Wert 8120
Das sollte bei diesem Vergleich als gleich gelten.
Da die führenden Nullen in der Spalte bzw im Feld atbnr nicht berücksichtigt werden sollen.
118120 = 8120 soll falsch ergeben
Also folgende Regel beim Vergleich
1_str_wlbm_sapmatnr-atbnr = atbnr aber die vorangestellten Nullen nicht betrachten.
hat jemand einen Tipp für mich.
Geht sowas mit Like ? Wenn ja wie.
benutze den Konvertierungs-Exit CONVERSION_EXIT_ALPHA_INPUT auf 1_str_wlbm_sapmatnr-atbnr und du erhälst den WERT '008120' mit dem Du auf der Datenbank den gewünschten Eintrag findest.
Voraussetzung: das Feld ATBNR ist 6-stellig und zeichenartig...
Vom Arbeiten mit Vergleichen rate ich ab, da die Nebenwirkungen nicht immer ersichtlich sind...
Gruß
Ereglam
May the Force be with your code || .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .
Meine Artikelnummern haben immer unterschiedliche Längen und sind von Typ char.
Ein ausführlicheres Beispiel wie die Konstellation der Artikelnummern aussieht
008120 <--> 8120 Ergenis bei Vergleich OK
234< --> 1234 Ergebnis bei Vergleich Falsch
0234 <--> 234 Ergebnis bei Vergleich OK
234 <--> 356 Ergebnis bei Vergleich Falsch
8120 <--> 8120 Ergebnis bei Vergleich OK
00012 <--> 12 Ergbnis bei Vergleich OK
00012 <--> 121 Ergebnis bei Vergleich Falsch
wenn die Daten auf der Datenbank kein geregeltes Format haben, wirst Du mit einfachen Mustervergleichen nicht weiterkommen.
Sind das kundeneigene Daten. Dann solltet Ihr dafür sorgen, dass sie SAP-typisch unter Verwendung eines Convertierungs-Exits abgelegt werden. Ansonsten ist das nur programmlokal zu lösen.
Ab ca. Release 6.40 werden RegEx-Klassen angeboten, damit ist es aber _nicht_ möglich direkt per SQL auf die Datenbank zu gehen.
Gruß
Ereglam
May the Force be with your code || .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .
mit LIKE wirst du nicht weiterkommen, so wie meine Vorposter ja schon angemerkt haben. Aber das sollte dich nicht davon abhalten das trotzdem anzugehen, indem du ein wenig um die Ecke denkst.
Um bei deinem Beispiel
008120 <--> 8120 Ergenis bei Vergleich OK
zu bleiben hier die Vorgehensweise
( Ich nehme an, dass 008120 auf der Datenbank steht ).
Statt mit
Update.... WHERE atbnr = <festwert>
solltest du ein
Update.... WHERE atbnr in <range>
verwenden, wobei du deine range sehr einfach folgendermaßen aufbauen kannst
I EQ 8120
I EQ 08120
I EQ 008120
....
I EQ 000000000000008120
Ist eigentlich simpel - sollte aber trotzdem dazu führen, dass du den von dir gewünschten Update machen kannst.