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 / 40 / 13 / 0 ) »
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


Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von black_adept (Top Expert / 3522 / 71 / 697 ) »
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 / 63 / 8 / 21 ) »
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 / 680 / 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 / 40 / 13 / 0 ) »
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 / 40 / 13 / 0 ) »
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 / 40 / 13 / 0 ) »
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 / 4383 / 214 / 486 ) »
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 / 40 / 13 / 0 ) »
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 / 4383 / 214 / 486 ) »
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 / 4383 / 214 / 486 ) »
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 / 3660 / 132 / 953 ) »
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.07
Basis: 7.40

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von JanR (ForumUser / 40 / 13 / 0 ) »
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 / 4383 / 214 / 486 ) »
Wie groß ist etwa <itab1>? also wie viele Einträge sind ca. enthalten?

Re: Spaltenzugriff über Field-Symbol Type Table

Beitrag von JanR (ForumUser / 40 / 13 / 0 ) »
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


Aktuelle Forenbeiträge

SmartForms show table...
vor 5 Tagen von Lucyalison 2 / 2261
Wie groß ist mein DynPro?
vor 5 Tagen von JanR gelöst 3 / 1135

Vergleichbare Themen

Probleme mit Field Symbol
von Kenny » 03.04.2013 17:11
Dump bei Field-symbol
von tho_died » 24.06.2008 14:43
IMPORT FROM MEMORY mit Field-Symbol
von Somani » 09.09.2013 17:14
Field-Symbol und löschen von Tabellenzeilen
von UserBC » 07.12.2008 21:11
Wie Field Symbol für Struktur generisch typisieren?
von Michael71 » 14.02.2012 16:03