2012-01-16 66 views
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 &打開SQL和我意識到這可能是一個容易/愚蠢的問題:)任何幫助在所有將非常感謝!

回答

5

您可以定義一個變量來使用表的名稱,然後使用該變量在從您的要求的關閉:

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

有一些限制,這種方法,爲穩定不能包含RAWSTRING,STRING或SSTRING類型的字段。

至於表格在不同的包裝中,我不認爲這很重要。

Regards,

+1

是的,包的分配通常沒有區別。如果軟件包檢查在系統中打開(通常不是) - 根據軟件包的設置方式以及軟件包提供哪些對象,這可能很重要。 – Esti 2012-01-16 21:23:10

+0

@Esti:感謝關於包檢查的信息。我從來沒有見過它,甚至不知道它的存在。 – 2012-01-16 22:21:23

+0

@PATRY萬分感謝您的幫助。非常感激 – 2012-01-18 15:19:19