Указание таблицы БД по ее пути? Является ли это возможным? - PullRequest
1 голос
/ 16 января 2012

Я пишу BSP и, основываясь на пользовательском вводе, мне нужно выбрать данные из разных таблиц БД. Эти таблицы находятся в разных пакетах. Можно ли указать таблицу, которую я хочу использовать, исходя из ее пути, например:

data: path1 type string value 'package1/DbTableName',
      path2 type string value 'package2/OtherDbTableName',
      table_to_use type string.

if some condition
table_to_use = path1.    
elseif some condition
table_to_use = path2.    
endif.

select *
from table_to_use

     ...

endselect

Я новичок в ABAP и Open SQL и знаю, что это может быть простой / глупый вопрос :) Любая помощь будет очень признательна!

1 Ответ

5 голосов
/ 16 января 2012

Вы можете определить имя таблицы для использования в переменной, а затем использовать переменную в конце ОТ вашего запроса:

data tableName type tabname.  
if <some condition>.   
   tableName='PA0001'.   
else.   
   tableName='PA0002'.   
endif.   
select * from (tableName) where ...

Есть несколько ограничений для этого метода, так как конюшня не может содержать поля типа RAWSTRING, STRING или SSTRING.

Что касается того факта, что таблица находится в другой упаковке, я не думаю, что это имеет значение.

С уважением,

...