Einträge aus DB-Tabelle paketweise selektieren

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Einträge aus DB-Tabelle paketweise selektieren

Beitrag von euro2008 (ForumUser / 15 / 0 / 0 ) »
Hallo,

ich möchte eine DB-Tabelle mit einer WHERE-Bedingung paketweise selektieren.
Ich stelle mir z.B. folgendes vor :

DO.
* 1. Paket
SELECT * FROM XYZ into L_XYZ_TAB
WHERE NUMMER größer L_NUMMER_MIN AND
NUMMER kleiner L_ NUMMER_MAX.

( NUMMER ist ein eindeutiges Schlüsselfeld der Tabelle XYZ)
=> Verarbeitung (Ändern) der Einträge der internal Tabelle L_XYZ_TAB.
=> Update XYZ FROM Tabelle L_XYZ_TAB.
=> COMMIT
=> REFRESH L_XYZ_TAB.

* 2. nächstes Paket
L_NUMMER_MIN = L_ NUMMER_MAX.
L_NUMMER_MAX = L_ NUMMER_MAX + 100. " Paketgröße 100

SELECT * FROM XYZ into L_XYZ_TAB
WHERE NUMMER größer L_NUMMER_MIN AND
NUMMER kleiner L_ NUMMER_MAX.

IF L_XYZ_TAB leer ist.
EXIT.
ENDIF.

ENDO.

Hast Jemand schon ähnliches gemacht und kann mir weiterhelfen?

Danke!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Einträge aus DB-Tabelle paketweise selektieren

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Moin moin,

kurz und knackig:

Sowas sollte man grundsätzlich nur machen wenn man gute Gründe dafür hat, weil es ziemlich umständlich ist.

Die richtige Anweisung heißt FREE, nicht REFRESH. FREE gibt den Speicher frei. Sonst allokierst du wie doof Arbeitsspeicher.

Statt "if itab leer" nimm sy-subrc.

EINE deiner Bedingungen muss den Fall "gleich" enthalten. Beispiel, die Schlüsselfeldinhalte lauten:

1
2
3
4
5
6
7
8
9
....

1. Zugriff: select where key >1 und <5, also 1, 2, 3, 4
2. Zugriff: select where key >5 und <9, also 6, 7, 8

Die 5 wird dabei ignoriert, weil sie weder kleiner 5 noch größer 5 ist.

Wo GENAU jetzt eigentlich dein Problem dabei ist, hast du aber nicht geschrieben.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von euro2008 (ForumUser / 15 / 0 / 0 ) »
Hallo Ralf,

danke für die Kommentare!
ein der Gründe ist das Performance Problem.
Wenn man das Programm in einem System ausführt und die Daten aus anderem System per RFC holen muss bekommt mann Time Out.
Aber egal aus welchem Grund. Die Daten sollen paketweise selektiert und verarbeitet werden.

Gruß
Euro2008

Seite 1 von 1

Vergleichbare Themen

14
Antw.
3797
Views
Interne Tabelle selektieren
von flo1304 » 14.03.2019 09:04 • Verfasst in ABAP® für Anfänger
8
Antw.
3200
Views
Interne Tabelle + Zusatzinformationen selektieren
von Johnny11 » 13.04.2015 10:38 • Verfasst in ABAP® Core
1
Antw.
1892
Views
alle Währungen selektieren mit Range-Tabelle
von Bright4.5 » 24.06.2020 09:23 • Verfasst in ABAP® für Anfänger
4
Antw.
2485
Views
Datei Paketweise einlesen?
von killa12 » 12.10.2010 12:03 • Verfasst in ABAP® Core
0
Antw.
1148
Views
Programm RLLNACH1 nach Z-Tabelle selektieren lassen
von max1 » 13.02.2007 14:58 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 13 Stunden von DeathAndPain gelöst 22 / 3148
Daten an Tabelle binden
vor 18 Stunden von Lukas Sanders 2 / 1034
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 609

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 13 Stunden von DeathAndPain gelöst 22 / 3148
Daten an Tabelle binden
vor 18 Stunden von Lukas Sanders 2 / 1034
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 609

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2605
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9194