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 / 4848 / 312 / 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 / 4848 / 312 / 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.
3487
Views
Insert-Statement bei Native SQL
von Steffi221185 » 07.12.2006 16:04 • Verfasst in ABAP® Core
12
Antw.
4504
Views
Native SQL
von Bugfix13 » 12.09.2014 13:41 • Verfasst in ABAP® für Anfänger
4
Antw.
4107
Views
Native SQL
von bliP! » 06.03.2006 15:49 • Verfasst in ABAP® für Anfänger
4
Antw.
2646
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

Dialog-Container mit Toolbar/Status
vor 11 Stunden von black_adept gelöst 23 / 3664
User Exit EXIT_RQCPRM10_001
vor 12 Stunden von a-dead-trousers 2 / 261
Trennen Strasse und Hausnummer
vor 18 Stunden von payten 13 / 10588
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1308

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 11 Stunden von black_adept gelöst 23 / 3664
User Exit EXIT_RQCPRM10_001
vor 12 Stunden von a-dead-trousers 2 / 261
Trennen Strasse und Hausnummer
vor 18 Stunden von payten 13 / 10588
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1308

Unbeantwortete Forenbeiträge

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