Löschen von Tabelleneinträgen mit Bedingung

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

Löschen von Tabelleneinträgen mit Bedingung

Beitrag von Julia.hrtm (ForumUser / 8 / 1 / 4 ) »
Hallo,
ich wollte mein Programm performanter machen und wollte demensprechend meine DELETE Ausführung beschleunigen. Die Tabelle bei welcher ich die Daten löschen möchte ist eine global gespeicherte Tabelle in SAP. Dementsprechend findet ständig ein Zugriff auf diese Tabelle statt, was zu höherer Laufzeit führt. Da das Programm eine große Menge an Daten verarbeitet, ist eine hohe Laufzeit nicht erwünscht.
Bisher war folgender Code in einer großen Loop-Schleife.

Code: Alles auswählen.

DELETE FROM zbi_costoper_h
WHERE
  material = <material>-material
  AND plant = <material>-plant
  AND costing_no = <header>-costing_no
  AND valid_from = <header>-valid_from.
Um diese Lösch-Anweisung performanter zu gestalten habe ich die zu löschenden Einträge in eine Tabelle geschrieben und wollte dann diese nach beenden der Schleife löschen.
Code:

Code: Alles auswählen.

      CLEAR gs_delete_costoper_h.
      gs_delete_costoper_h-material = <material>-material.
      gs_delete_costoper_h-plant = <material>-plant.
      gs_delete_costoper_h-costing_no = <header>-costing_no.
      gs_delete_costoper_h-valid_from = <header>-valid_from.
      APPEND gs_delete_costoper_h TO gt_delete_costoper_h.

      ...

  DELETE FROM zbi_costoper_h WHERE (gt_delete_costoper_h).
Bei der Ausführung des Codes im Testsystem bekomme ich den Fehler, siehe Bild.
Screenshot 2024-12-02 082902.png

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


Re: Löschen von Tabelleneinträgen mit Bedingung

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Hi.

Sofern die Datenbanktabelle "zbi_costoper_h" den gleichen Aufbau hat wie die interne Tabelle "gt_delete_costoper_h" wäre der korrekte Aufruf

Code: Alles auswählen.

DELETE zbi_costoper_h FROM TABLE gt_delete_costoper_h.
Die Syntax

Code: Alles auswählen.

DELETE FROM zbi_costoper_h WHERE (...).
ist für dynamische WHERE-Klauseln vorgesehen.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Löschen von Tabelleneinträgen mit Bedingung

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Mich hätte ja auch mal interessiert, welchen Primärschlüssel (und ggf. welche weiteren Indizes) diese Datenbanktabelle hat...

Seite 1 von 1

Vergleichbare Themen

5
Antw.
2781
Views
2
Antw.
2186
Views
Modifikation von Tabelleneinträgen
von hai_friedrich » 20.11.2007 17:44 • Verfasst in Financials
3
Antw.
2715
Views
Transport von Tabelleneinträgen wie in SM30
von cut1 » 24.07.2006 10:35 • Verfasst in ABAP® Core
0
Antw.
1124
Views
Doku zu Tabelleneinträgen mit WORD
von brunotti » 20.07.2007 08:01 • Verfasst in Basis
5
Antw.
7631
Views
Transport von einzelnen Tabelleneinträgen
von Mr.Black » 03.04.2008 10:31 • Verfasst in Sonstige Module

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.