2017-06-22 66 views
2

我有以下SQL語句,並且想知道是否可以使用VALUE運算符來重寫它,以避免在開始時使用DATA語句。ABAP在SQL語句中使用VALUE運算符的初始值

DATA(lv_initial) = VALUE /scwm/guid_hu(). 
    SELECT * FROM /scwm/tu_dlv 
    WHERE lgnum  = @lv_lgnum 
     AND top_hu = @lv_initial 
    INTO TABLE @DATA(lt). 

即,我想有類似以下,其中給出了錯誤:「域‘VALUE’未知[...]。」,很遺憾。

SELECT * FROM /scwm/tu_dlv 
    WHERE lgnum  = @lv_lgnum 
     AND top_hu = @VALUE #() 
    INTO TABLE @DATA(lt). 

這可能嗎?我想擺脫DATA聲明,因爲如果變量被重用,容易導致錯誤。

我在Google和ABAP關鍵詞文檔中進行了搜索,專門針對「SELECT」,「VALUE,Operator」和「DATA,Operator」,但無濟於事。

任何建議表示讚賞。

親切的問候, 斯特凡

回答

1

據我所看到的,這取決於目標釋放。對於release 7.40,比較的右邊需要是(除了其他的替代品)

a host variable or a literal

而在release 7.50,已被替換爲允許

a literal, a host variable, or a host expression

該擴展,以便host expressions應該允許你做你想做的事,如in this example所示。

+0

非常有趣,謝謝你的解釋。不幸的是,我目前正在使用7.40版本,但至少我現在可以停止搜索。 –

相關問題