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 / 3776 / 176 / 262 ) »
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.
3405
Views
Interne Tabelle selektieren
von flo1304 » 14.03.2019 09:04 • Verfasst in ABAP® für Anfänger
8
Antw.
3113
Views
Interne Tabelle + Zusatzinformationen selektieren
von Johnny11 » 13.04.2015 10:38 • Verfasst in ABAP® Core
3
Antw.
3256
Views
dynamische Spalte aus der Tabelle selektieren?
von Jinn » 07.04.2004 19:15 • Verfasst in ABAP® Core
1
Antw.
1737
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.
2211
Views
Datei Paketweise einlesen?
von killa12 » 12.10.2010 12:03 • Verfasst in ABAP® Core

Über diesen Beitrag


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

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.