1

我正在编写一个 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 的新手,我知道这可能是一个简单/愚蠢的问题 :) 非常感谢任何帮助!

4

1 回答 1

5

您可以定义要在变量中使用的表的名称,然后在请求的 FROM 关闭中使用该变量:

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

这种方法有一些限制,因为稳定不能包含 RAWSTRING、STRING 或 SSTRING 类型的字段。

至于桌子在不同的包装中,我认为这并不重要。

问候,

于 2012-01-16T12:14:24.100 回答