insert einer Tabelle

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

insert einer Tabelle

Beitrag von barbara (ForumUser / 50 / 0 / 0 ) »
Hello,
Kann mir bitte jemand erklären, wie man die zzt_pkt_hvbanf - Tabelle richtig befüllen kann?
.. ich sitze wohl offensichtlich auf der Leitung :(
...
thx
lg

Code: Alles auswählen.

* Selektion ob man neue HVB-Daten anfordern will
    SELECT * FROM zzt_pkt_hvbanf
         WHERE sozver EQ zzt_pkt_versns-sozver
           AND handle EQ '0'.

      IF p_hvbdat = 'X'.

        INSERT INTO zzt_pkt_hvbanf
          VALUES zzt_pkt_versns-sozver, v_timestamp, v_ernam, v_text1.

*        SELECT zzt_pkt_versns-sozver,v_timestamp,v_ernam,v_text1
*          into sozver,tstmp,ernam,text1
*          from zzt_pkt_hvbanf.

      ENDIF.

    ENDSELECT.

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


Beitrag von barbara (ForumUser / 50 / 0 / 0 ) »
... zu dem vorigen posting --> bzw. wieso geht der da nicht in dieses select rein?
(lt. debugger geht er nicht einmal in das select rein)
Woran kann das in diesem Fall liegen?

Code: Alles auswählen.

    SELECT * FROM zzt_pkt_hvbanf
         WHERE sozver EQ zzt_pkt_versns-sozver
           AND handle EQ '0'.
write: / 'ldkfls'.
*      IF p_hvbdat = 'X'.

*        INSERT INTO zzt_pkt_hvbanf VALUES zzt_pkt_versns-sozver, v_timestamp, v_ernam, 'bmlv'.
        WRITE: / 'sdkfsldk'.
*      ENDIF.

    ENDSELECT.
Danke!!
lg

Beitrag von Andreas G (Specialist / 175 / 0 / 0 ) »
Hallo.

ich glaub du solltest die Daten die du einfügen willst, in eine Strucktur schreiben die wie die Tabelle aussieht und dann:

Code: Alles auswählen.

DATA: gs_deine_strucktur LIKE zzt_pkt_hvbanf
...
INSERT INTO zzt_pkt_hvbanf
VALUES gs_deine_strucktur.
wegen dem select: schau dir mit der SE16 die Tabelle an, ob du mit dem Schlüssel im Debugging einen Eintrag findest :wink:
mfg Andi
Hauptsoch: HAUPTSOCH!

Beitrag von barbara (ForumUser / 50 / 0 / 0 ) »
Hallo,
Danke für die Antwort!

Jetzt bin ich draufgekommen weshalb ich nicht in das select reinkomme.....

Meine eigentliche Frage ist derzeit so --> Vor der Abfrage ob der User neue Daten anfordern möchte oder nicht (if p_hvbdat = 'X'.) muss mittels einem select abgefragt werden, ob es für die jeweilige Sozialversicherungsnummer aus der VERSNS-Tab. (zzt_pkt_versns-sozver) ein HVB-Satz vorhanden ist oder nicht! Deshalb die where Bedingung handle EQ '0'. Nur muss noch dazu abgefragt werden ob es zu der jeweiligen eingegebenen Sozver. des Users ein Datensatz vorhanden ist oder nicht.
Wenn nicht - d.h. wenn handle gleich 0 ist, dann kann man mittels insert einen neuen Satz einfügen --> zu der jeweiligen Sozver.

D.h. jetzt gehört es noch in die Tabelle hvbanf eingefügt, wenn kein Satz vorhanden ist.

Wie kann man das am besten machen?
Danke!!
lg

Mein Code schaut derzeit so aus -->

Code: Alles auswählen.

* Selektion ob man neue HVB-Daten anfordern will
    SELECT * FROM zzt_pkt_hvbanf
      WHERE handle EQ '0'
      and sozver EQ zzt_pkt_versns-sozver.
    ENDSELECT.

    IF p_hvbdat = 'X'.

*        INSERT INTO zzt_pkt_hvbanf VALUES zzt_pkt_versns-sozver, v_timestamp, v_ernam, 'bmlv'.
      WRITE: / 'test', v_timestamp, v_ernam, zzt_pkt_versns-sozver.
    ENDIF.

Beitrag von barbara (ForumUser / 50 / 0 / 0 ) »
Hab's jetzt mit einer Struktur gemacht -->

Code: Alles auswählen.

TYPES: BEGIN OF t_data,
    sozver LIKE zzt_pkt_hvbanf-sozver,
    tstmp  LIKE zzt_pkt_hvbanf-tstmp,
    ernam  LIKE zzt_pkt_hvbanf-ernam,
    text1  LIKE zzt_pkt_hvbanf-text1,
  END OF t_data.
....
* Selektion ob man neue HVB-Daten anfordern will
    SELECT * FROM zzt_pkt_hvbanf
      WHERE handle EQ '0'
        AND sozver EQ zzt_pkt_versns-sozver.
    ENDSELECT.

    IF p_hvbdat = 'X'.

      INSERT INTO zzt_pkt_hvbanf VALUES t_data.
      WRITE: / 'test', v_timestamp, zzt_pkt_versns-sozver.
    ENDIF.
Aber wieso eigentlich mit einer Struktur?
Geht das nicht auch ohne einer Struktur?
thx, lg

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
So jetzt zum dritten mal, hoffe diesmal stört keiner.

Wenn ich dich richtig verstanden habe soll der User auf Anforderung (p_hvbdat = 'X') einen Satz in zzt_pkt_hvbanf einfügen, wenn der Satz noch nicht in der Tabelle zzt_pkt_hvbanf existiert.

Wie ist der Schlüssel von zzt_pkt_hvbanf definiert?

Im Moment selktierst du aus zzt_pkt_hvbanf, prüfst das Ergbnis aber nicht weiter. Dann versuchst du einen Insert, der nicht funktioniert.

Beim Einfügen in eine DB-Tabelle mußt du die ganze Zeile der DB-Tabelle mitgeben. (Das war der Hinweis auf die Struktur.)

Hier mal mein Vorschlag

Code: Alles auswählen.

* Eine Zeile der DB-Tabelle
DATA: gw_zzt_pkt_hvbanf TYPE zzt_pkt_hvbanf.

*   Wenn der User einen Satz einfügen will
    IF p_hvbdat = 'X'.

*    Prüfen ob Satz bereits existiert
     SELECT SINGLE * 
     INTO line_of_zzt_pkt_hvbanf
     FROM zzt_pkt_hvbanf
*    In der WHERE-Bedingung unbedingt den ganzen 
*    Schlüssel angeben
     WHERE sozver EQ zzt_pkt_versns-sozver.

*     Wenn der Satz nicht existiert
      IF sy-subrc <> 0.

*     Hier die Daten für den neuen Satz füllen,
*     min. den ganzen KEY angeben
       CLEAR gw_zzt_pkt_hvbanf.
       gw_zzt_pkt_hvbanf-sozver = zzt_pkt_versns-sozver.

*     Satz in DB-Tabelle einfügen
      INSERT INTO zzt_pkt_hvbanf VALUES gw_zzt_pkt_hvbanf.
*     gabe es Fehler beim Einfügen
        IF sy-subrc <> 0.
          WRITE: / 'Fehler beim Schreiben auf DB.'.
        ENDIF. "sy-subrc nach INSERT
      ENDIF. "sy-subrc nach SELECT
    ENDIF. "p_hvbdat = 'X'
Gruß Hendrik

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2949
Views
Insert into Tabelle
von hauke_daniel » 02.01.2008 12:04 • Verfasst in ABAP® für Anfänger
2
Antw.
2271
Views
Datenbanktabelle auffüllen aus interner Tabelle mit Insert
von Nourie » 16.08.2005 15:29 • Verfasst in ABAP® für Anfänger
5
Antw.
9646
Views
INSERT / MODIFY auf Z-Tabelle mit/ohne Commit-Work ?
von gre » 19.11.2007 16:08 • Verfasst in ABAP® für Anfänger
0
Antw.
1297
Views
6
Antw.
7308
Views
"Sicheres" Insert in DB Tabelle
von donossi » 10.04.2012 14:24 • Verfasst in ABAP® für Anfänger

Ü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.