Hallo zusammen,
ich habe ein Problem vielleicht könnt ihr mir weiter helfen.
Ich habe eine Klasse SQL welche Open und Native Sql ausführen kann. Es wird dynamisch ein SQL -Statement generiert und durch die Methode run_sql ausgeführt.
Open SQL funktioniert schon super.
Habe aber bei Native ein Problem. Mein Ausgabeparameter ist immer eine Tabelle. Der Typ der Tabelle ist immer unterschiedlich. Nun erwartet aber Native SQL in der into-Klausel eine Struktur und keine Tabelle. So weit so gut dann dachte ich mir ich häng einfach den Arbeitsbereich an die TAbelle an mit:
EXEC SQL PERFORMING loop_it.
select (it_sel_list)
from (str_from)
INTO :<wa_it>
where (str_where)
group by (str_group).
ENDEXEC.
Form loop_it.
append <wa_it> into e_it_result.
endform.
Dort gabs aber leider ne Fehlermeldung, dass in der Objektorientierung kein PERFORMING erlaubt ist.
Als alternativ-Lösung wurde dann folgendes angeboten:
EXEC SQL.
open c1 for
select ... from dbtab where ...
ENDEXEC.
DO.
EXEC SQL.
fetch next c1 into :wa
ENDEXEC.
IF sy-subrc <> 0.
EXIT.
ENDIF.
...
ENDDO.
EXEC SQL.
close c1
ENDEXEC.
Aber wo kann ich da meinen Arbeitsbereich der internen Tabelle hinzufügen???? Geht das überhaupt?
Vielleicht hat aber noch jemand eine andere Lösung.
Bin für jeden Tipp dankbar.
Gruß Steffi221185