SQL 语句中带有 VALUE 运算符的 ABAP 初始值
ABAP Initial value with VALUE operator in SQL statement
我有以下 SQL 语句,想知道是否可以使用 VALUE
运算符重写它以避免开头的 DATA
语句。
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).
也就是说,我想要类似下面的东西,它给出了错误:"Field 'VALUE' unknown. [...]",不幸的是。
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",但无济于事。
如有任何建议,我们将不胜感激。
亲切的问候,
斯特凡
据我所知,这取决于目标版本。对于 release 7.40,比较的右侧需要是(在其他选项中)
a host variable or a literal
而在 release 7.50 中,已将其替换为允许
a literal, a host variable, or a host expression
host expressions should allow you to do what you want to do, as shown in this example 的扩展名。
我有以下 SQL 语句,想知道是否可以使用 VALUE
运算符重写它以避免开头的 DATA
语句。
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).
也就是说,我想要类似下面的东西,它给出了错误:"Field 'VALUE' unknown. [...]",不幸的是。
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",但无济于事。
如有任何建议,我们将不胜感激。
亲切的问候, 斯特凡
据我所知,这取决于目标版本。对于 release 7.40,比较的右侧需要是(在其他选项中)
a host variable or a literal
而在 release 7.50 中,已将其替换为允许
a literal, a host variable, or a host expression
host expressions should allow you to do what you want to do, as shown in this example 的扩展名。