gpt4 book ai didi

dynamic - 使用动态键字段读取表?

转载 作者:行者123 更新时间:2023-12-03 22:49:29 25 4
gpt4 key购买 nike

我有一张表的名字 DATA lv_tablename TYPE tabname VALUE 'xxxxx' ,以及通用 FIELD-SYMBOLS: <lt_table> TYPE ANY TABLE.其中包含从相应表中选择的条目。

我已经定义了我的线路结构 FIELD-SYMBOLS: <ls_line> TYPE ANY.我会用它来读取表格。

有没有办法在 <lt_table> 上创建 READ 语句?完全指定关键字段?

我知道声明/添加 READ TABLE xxxx WITH KEY (lv_field_name) = 'asdf'. ,但是这对于动态数量的关键字段不起作用(afaik),而且我不想创建大量 READ TABLE具有越来越多的关键字段规范的语句。

这能做到吗?

最佳答案

其实我发现这个工作

DATA lt_bseg TYPE TABLE OF bseg.
DATA ls_bseg TYPE bseg.
DATA lv_string1 TYPE string.
DATA lv_string2 TYPE string.

lv_string1 = ` `.
lv_string2 = lv_string1.

SELECT whatever FROM wherever INTO TABLE lt_bseg.

READ TABLE lt_bseg INTO ls_bseg
WITH KEY ('MANDT') = 800
(' ') = ''
('BUKRS') = '0005'
('BELNR') = '0100000000'
('GJAHR') = 2005
('BUZEI') = '002'
('') = ''
(' ') = ''
(' ') = ' '
(lv_string1) = '1'
(lv_string2) = ''.

通过使用这种语法,您可以根据需要指定尽可能多的关键字段。如果某些字段为空,则这些字段将被忽略,即使为这些空字段指定了值。

必须注意,使用这种精确的语法(静态定义),将不允许 2 个具有完全相同名称(甚至是空白名称)的字段。

如变量 lv_string1 所示和 lv_string2 ,在运行时这是没有问题的。

最后,可以按任何顺序指定字段(我不知道使用此语法可能会获得哪些性能优势或惩罚)

关于dynamic - 使用动态键字段读取表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18869119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com