Spaltenzugriff über Field-Symbol Type Table

Getting started ... Alles für einen gelungenen Start.
17 Beiträge • Seite 1 von 2 (current) Nächste
17 Beiträge Seite 1 von 2 (current) Nächste

Spaltenzugriff über Field-Symbol Type Table

Beitrag von JanR (ForumUser / 63 / 15 / 2 ) »
Hallo zusammen,

ich habe das folgende Select Statement (Hier mal mit Beispielnamen angegeben)

SELECT *
FROM tabelle1
JOIN tabelle2 On tabelle1~schl = tabelle2~schl
INTO CORRESPONDING FIELDS OF TABLE <it_tab2>
FOR ALL ENTRIES IN <it_tab1>
WHERE tabelle1~schl = <it_tab1>~schl.

Ich bekomme immer die Fehlermeldung, dass der angegebene Spaltenname unbekannt ist, dabei hat die Tabelle <it_tab1> eine Spalte schl.

Weiß jemand was ich bei den Field-Symbols falsch mache? Bzw. wie es funktionieren würde?`

Vielen Dank schon mal im Voraus
Jan

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


Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von black_adept (Top Expert / 4093 / 128 / 940 ) »
Zeig mal die Programmzeile, wo du das Feldsymbol <it_tab1> definierst.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von fr-g (ForumUser / 76 / 12 / 25 ) »
Der Syntaxfehler, dass das Feld unbekannt ist, kommt von der falschen Tilde in der WHERE-Bedingung:

Code: Alles auswählen.

SELECT *
FROM tabelle1
JOIN tabelle2 On tabelle1~schl = tabelle2~schl
INTO CORRESPONDING FIELDS OF TABLE <it_tab2>
FOR ALL ENTRIES IN <it_tab1>
WHERE tabelle1~schl = <it_tab1>-schl.
Alles weitere kann man ohne die Typisierung des Feldsymbols schlecht sagen :)

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hi,m

Mal aus Sicht der Performance und der Klarheit dieses Statements ...
sieht aus wie der worseste Worst-Case, den ich jeh gesehen habe ...

Wenn ich mir das endlose SQL Statement vorstelle, was an die Datenbank geht ... ohne Chance auf Cache ...
den arbeitslosen Compiler da ist nix was man vorher kompilieren könnte ... das frustrierte Laufzeitsystem, was dieses Statement immer und immer wieder interpretieren muss.

Mal gleich in der Cloud nen Prozessor dazubuchen.

Sorry und Grüße
babap

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von JanR (ForumUser / 63 / 15 / 2 ) »
black_adept hat geschrieben:
22.04.2021 16:39
Zeig mal die Programmzeile, wo du das Feldsymbol <it_tab1> definierst.
<it_tab1> definiere ich hier:
FIELD-SYMBOLS: <it_tab1> TYPE TABLE.

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von JanR (ForumUser / 63 / 15 / 2 ) »
fr-g hat geschrieben:
22.04.2021 18:05
Der Syntaxfehler, dass das Feld unbekannt ist, kommt von der falschen Tilde in der WHERE-Bedingung:

Code: Alles auswählen.

SELECT *
FROM tabelle1
JOIN tabelle2 On tabelle1~schl = tabelle2~schl
INTO CORRESPONDING FIELDS OF TABLE <it_tab2>
FOR ALL ENTRIES IN <it_tab1>
WHERE tabelle1~schl = <it_tab1>-schl.
Alles weitere kann man ohne die Typisierung des Feldsymbols schlecht sagen :)
Der Fehler mit der falschen Tilde ist mir wohl beim erstellen dieses Beitrages passiert. Auch mit deiner korrigierten Variante kommt der selbe Fehler.

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von JanR (ForumUser / 63 / 15 / 2 ) »
babap hat geschrieben:
22.04.2021 22:51
Hi,m

Mal aus Sicht der Performance und der Klarheit dieses Statements ...
sieht aus wie der worseste Worst-Case, den ich jeh gesehen habe ...

Wenn ich mir das endlose SQL Statement vorstelle, was an die Datenbank geht ... ohne Chance auf Cache ...
den arbeitslosen Compiler da ist nix was man vorher kompilieren könnte ... das frustrierte Laufzeitsystem, was dieses Statement immer und immer wieder interpretieren muss.

Mal gleich in der Cloud nen Prozessor dazubuchen.

Sorry und Grüße
babap
Danke für den Hinweis, aber da das Programm sehr dynamisch auf mehrere Tabellen und Felder zugreifen soll und ich immer noch ein ABAP Anfänger bin, ist mir bis jetzt noch keine andere Lösung bekannt um das zu machen.

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
JanR hat geschrieben:
22.04.2021 15:29
dabei hat die Tabelle <it_tab1> eine Spalte schl.
Wie soll das System das wissen, wenn du die Tabelle mit TYPE TABLE, also ohne Strukturinformationen definierst?

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von JanR (ForumUser / 63 / 15 / 2 ) »
ewx hat geschrieben:
23.04.2021 09:45
JanR hat geschrieben:
22.04.2021 15:29
dabei hat die Tabelle <it_tab1> eine Spalte schl.
Wie soll das System das wissen, wenn du die Tabelle mit TYPE TABLE, also ohne Strukturinformationen definierst?
Deswegen frage ich ja nach einem Weg wie ich das machen kann, später weise ich dem Field-Symbol mit einem ASSIGN die Tabellenstruktur zu.
Zuletzt geändert von JanR am 23.04.2021 09:51, insgesamt 1-mal geändert.

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
babap hat geschrieben:
22.04.2021 22:51
Mal aus Sicht der Performance und der Klarheit dieses Statements ...
sieht aus wie der worseste Worst-Case, den ich jeh gesehen habe ...
Kannst du näher erläutern, was du meinst?

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
DeathAndPain


Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
JanR hat geschrieben:
23.04.2021 09:50
Deswegen frage ich ja nach einem Weg wie ich das machen kann, später weise ich dem Field-Symbol mit einem ASSIGN die Tabellenstruktur zu.
Wenn du die Tabelle <itab1> dynamisch zuweist, woher weißt du dann, welche Felder enthalten sind?
Bzw. Wenn du weißt, welche Felder vorhanden sind, dann definiere eine Tabelle mit genau diesen Feldern und übertrage auch nur diese Felder.

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von a-dead-trousers (Top Expert / 4397 / 223 / 1182 ) »
JanR hat geschrieben:
23.04.2021 09:50
ewx hat geschrieben:
23.04.2021 09:45
JanR hat geschrieben:
22.04.2021 15:29
dabei hat die Tabelle <it_tab1> eine Spalte schl.
Wie soll das System das wissen, wenn du die Tabelle mit TYPE TABLE, also ohne Strukturinformationen definierst?
Deswegen frage ich ja nach einem Weg wie ich das machen kann, später weise ich dem Field-Symbol mit einem ASSIGN die Tabellenstruktur zu.
Ja, aber so geht das leider nicht.
Für ein SELECT-Statement in dieser Form braucht es eine statische Typ-Information.
Du kannst hier nur, bevor du das SELECT aufrufst, mit LOOP AT und dann ASSIGNING COMPONENT OF die einzelnen Zeilen und Felder deiner <it_tab1> durchlaufen und in eine typisierte (Range-)Tabelle übertragen. Erst damit kannust du dann das SELECT aufrufen.
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: Spaltenzugriff über Field-Symbol Type Table

Beitrag von JanR (ForumUser / 63 / 15 / 2 ) »
a-dead-trousers hat geschrieben:
23.04.2021 09:56
JanR hat geschrieben:
23.04.2021 09:50
ewx hat geschrieben:
23.04.2021 09:45

Wie soll das System das wissen, wenn du die Tabelle mit TYPE TABLE, also ohne Strukturinformationen definierst?
Deswegen frage ich ja nach einem Weg wie ich das machen kann, später weise ich dem Field-Symbol mit einem ASSIGN die Tabellenstruktur zu.
Ja, aber so geht das leider nicht.
Für ein SELECT-Statement in dieser Form braucht es eine statische Typ-Information.
Du kannst hier nur, bevor du das SELECT aufrufst, mit LOOP AT und dann ASSIGNING COMPONENT OF die einzelnen Zeilen und Felder deiner <it_tab1> durchlaufen und in eine typisierte (Range-)Tabelle übertragen. Erst damit kannust du dann das SELECT aufrufen.
Danke für deine Antwort.
Hast du dazu vielleicht ein Beispielcode?

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Wie groß ist etwa <itab1>? also wie viele Einträge sind ca. enthalten?

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von JanR (ForumUser / 63 / 15 / 2 ) »
ewx hat geschrieben:
23.04.2021 10:17
Wie groß ist etwa <itab1>? also wie viele Einträge sind ca. enthalten?
Je nach Einschränkung 10-50 Tausend

Vergleichbare Themen

3
Antw.
3090
Views
Dump bei Field-symbol
von tho_died » 24.06.2008 14:43 • Verfasst in ABAP® für Anfänger
10
Antw.
3611
Views
Probleme mit Field Symbol
von Kenny » 03.04.2013 17:11 • Verfasst in ABAP® für Anfänger
2
Antw.
2581
Views
IMPORT FROM MEMORY mit Field-Symbol
von Somani » 09.09.2013 17:14 • Verfasst in ABAP® Core
1
Antw.
2020
Views
Field-Symbol als Importing Parameter
von tekko » 12.06.2021 18:23 • Verfasst in ABAP Objects®
8
Antw.
22294
Views
Field-Symbol und löschen von Tabellenzeilen
von UserBC » 07.12.2008 21:11 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 9 Stunden von msfox 18 / 10973
Dialog-Container mit Toolbar/Status
vor 11 Stunden von black_adept gelöst 27 / 4092
IT0024 Qualifikationen CP-ID
vor 13 Stunden von ArjenR 1 / 98

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

Trennen Strasse und Hausnummer
vor 9 Stunden von msfox 18 / 10973
Dialog-Container mit Toolbar/Status
vor 11 Stunden von black_adept gelöst 27 / 4092
IT0024 Qualifikationen CP-ID
vor 13 Stunden von ArjenR 1 / 98

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 13 Stunden von ArjenR 1 / 98
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3032
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9622