У меня есть две строковые переменные:
lv_table_name
содержит имя таблицыlv_column_name
содержит имя столбца
Есть ли способ проверить, есть ли таблица (или представление) с данным столбцом?
У меня есть две строковые переменные:
lv_table_name
содержит имя таблицыlv_column_name
содержит имя столбцаЕсть ли способ проверить, есть ли таблица (или представление) с данным столбцом?
Определения таблиц и представлений можно найти в таблице DD03L. Если вы можете получить доступ к таблице с указанной комбинацией таблицы/столбца, это будет заметно быстрее.
REPORT.
DATA: lv_column_name TYPE string VALUE 'MY_FIELD'.
"this will tell you which tables/views exist containing the column 'MY_FIELD'
SELECT tabname
FROM dd03l INTO TABLE @DATA(lt_tables)
WHERE fieldname EQ @lv_column_name.
cl_abap_classdescr=>describe_by_name( EXPORTING p_name = |\TYPE={ lv_table_name }-{ lv_column_name }| EXCEPTIONS type_not_found = 1 ).
(sy-subrc = 1 означает, что таблица или столбец не существуют)
- person Sandra Rossi; 05.10.2018
Для Netweaver 7.5 вы можете использовать простой выбор OPEN SQL на DD03L
https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abensql_expr_literal_abexa.htm
SELECT SINGLE @abap_true
FROM DD03L
WHERE tabname EQ @lv_table_name AND fieldname EQ @lv_column_name
INTO @DATA(lv_exists).