Native SQL - Insert

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Native SQL - Insert

Beitrag von MarkusG (ForumUser / 9 / 0 / 0 ) »
Ich versuche den Inhalt einer Tabelle in eine andere zu kopieren. Über die zweite Tabelle möchte ich dann den SALV laufen lassen, damit der Anwender seine Eingrenzungen etc durchführen kann. Und das ganze soll natürlich schnell gehen.

Einen SELECT ... INTO dbtable gibt es ja nicht, das geht nur mit einer internen Tabelle. Und das dauert, da es sich um ca. 500.000 Datensätze mit einem Arbeitsspeicherbedarf von >170 MB handelt.

Also wollte ich das ganze innerhalb des Datenbank-Servers abhandeln. Dann fällt die ganze Datenübertragung von DB-Server zu Appl-Server flach.

Ein Beispiel:

Code: Alles auswählen.

  exec sql.

    insert into ZTEST_VBAKP
            ( mandt, bname, vbeln, posnr,
              objnr, vtweg, kunnr, knumv )
      select :sy-mandt, :sy-uname, vbak.vbeln, vbap.posnr,
             vbap.objnr, vbak.vtweg, vbak.kunnr, vbak.knumv
        from vbak vbak, vbap vbap
       where vbak.vbeln = vbap.vbeln

        and ( vbak.vtweg = '01' or vbak.vtweg = '02' )
        and   vbak.vdatu <= :datum_vgl

  endexec.
Der Laufzeit nach zu schliessen, werden die Datensätze ermittelt. Aber leider wird nichts in die Tabelle geschrieben. Der INSERT eines einzelnen Datensatzes funktioniert tadellos.

Ist es tatsächlich so, daß alle Native-SQL Anweisungen nur einzelne Datensätze abarbeiten können?

Vielen Dank für Eure Hilfe.
Viele Grüße aus Rosenheim

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


Re: Native SQL - Insert

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Probier mal so (Ist zwar auch nur eine "Einzelverarbeitung" aber letztendlich landen die Sätze dann doch in der Tabelle...):

Code: Alles auswählen.

  exec sql PERFORMING INSERT_RESULT.

    insert into ZTEST_VBAKP
            ( mandt, bname, vbeln, posnr,
              objnr, vtweg, kunnr, knumv )
      select :sy-mandt, :sy-uname, vbak.vbeln, vbap.posnr,
             vbap.objnr, vbak.vtweg, vbak.kunnr, vbak.knumv
        from vbak vbak, vbap vbap
       where vbak.vbeln = vbap.vbeln

        and ( vbak.vtweg = '01' or vbak.vtweg = '02' )
        and   vbak.vdatu <= :datum_vgl

  endexec.

FORM INSERT_RESULT.

  APPEND ZTEST_VBAKP.

ENDFORM.
Gruß,

Beitrag von MarkusG (ForumUser / 9 / 0 / 0 ) »
So einfach ist es leider nicht. Der Performing ist nur erlaubt, wenn ein Select durchgeführt wird. Geht also nicht bei einem insert...

Natürlich kann ich das ganze auf einen Insert umstellen. Aber dann werden wieder alle Daten über das Netz übertragen. Und dann auch noch einzeln. Für jeden Datensatz eine Kommunikation. Das dauert noch länger, als vorher. Deshalb wollte ich diese Aufgabe ja dem Datenbank-Server intern überlassen.
Viele Grüße aus Rosenheim

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
hm. Stimmt. So im Nachhinein betrachtet war das wohl quatsch... :-]
Aber wenn das sooo vielie Sätze sind, denn macht es doch auch kaum Sinn, die im ALV auszugeben, oder? Wenn's dann eben dochnichtganzsoviele sind, kannst du die ja auch ruhig in eine interne Tabelle laden. Dafür sind die ja da... :-)

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

ich will ja nicht viel stänkern, aber bis jetzt haben sich fast alle Versuche, "mal Native SQL zu benutzen" als "esotherische Spielerei" entpuppt. (muß man doch mal gemacht haben ...)

Bei SAP hat sich nicht umsonst die allgemeinere Variante von SAP-SQL durchgesetzt. Und das System hat sicherlich überhaupt kein Problem 500.000 Sätze zu verarbeiten.

Und wenn das zuviel für den Hauptspeicher ist, liest man mit Cusor in 20.000er Blöcken und "fährt" das ganz gemütlich in die "Nachbartabelle".

Alles mit SAP-SQL-Bordmitteln ...

Gruß
babap

Seite 1 von 1

Vergleichbare Themen

4
Antw.
3490
Views
Insert-Statement bei Native SQL
von Steffi221185 » 07.12.2006 16:04 • Verfasst in ABAP® Core
12
Antw.
4511
Views
Native SQL
von Bugfix13 » 12.09.2014 13:41 • Verfasst in ABAP® für Anfänger
4
Antw.
4111
Views
Native SQL
von bliP! » 06.03.2006 15:49 • Verfasst in ABAP® für Anfänger
4
Antw.
2648
Views
Native SQL -> DDIC
von Jurko » 29.07.2005 16:53 • Verfasst in ABAP® Core
0
Antw.
1057
Views
und mal wieder Native SQL
von Steffi221185 » 14.08.2006 09:07 • Verfasst in ABAP Objects®

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 8 Stunden von edwin 7 / 166
Daten an Tabelle binden
vor 22 Stunden von Bright4.5 3 / 1487

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

Regex in where
vor 8 Stunden von edwin 7 / 166
Daten an Tabelle binden
vor 22 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822