gpt4 book ai didi

dynamic - 从 (lv_tablename) 中选择错误 : the output table is too small

转载 作者:行者123 更新时间:2023-12-02 22:34:11 25 4
gpt4 key购买 nike

我有一个 ABAP 类方法,比如 select_something。 select_something 有一个导出参数,比如 et_result。 et_result 是标准表类型,因为 et_result 的类型要到运行时才能确定。

该方法有时会给出一个简短的转储说With ABAP/4 Open SQL array select, the output table is too small at "select * into table et_result from (lv_tablename) where.. .

错误分析:

......在这种特殊情况下,数据库表是 3806 字节宽,但内部表只有 70 字节宽。

我也试过“任何表”,错误是一样的。

最佳答案

您可以返回一个数据引用。您的查询将不再失败,之后您可以将数据分配给正确键入的字段符号。

" Definition
class-methods select_all
importing
!tabname type string
returning
value(results) type ref to data.


...
...


" Implementation
method select_all.
data dref type ref to data.
create data dref type standard table of (tabname).
field-symbols <tab> type any table.
assign dref->* to <tab>.
select * from (tabname) into table <tab>.
get reference of <tab> into results.
endmethod.

此外,我同意@vwegert 的观点,即应尽可能避免动态查询(以及与此相关的编程)。

关于dynamic - 从 (lv_tablename) 中选择错误 : the output table is too small,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11726124/

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