Abap 如何从DB表中选择LRAW?

Abap 如何从DB表中选择LRAW?,abap,sap-data-dictionary,Abap,Sap Data Dictionary,我有以下代码: SELECT S~CLUSTD AS ZZCLUSTD INTO CORRESPONDING FIELDS OF TABLE @lt_viqmel_iflos FROM viqmel AS v LEFT OUTER JOIN stxl AS S ON s~tdobject = @lv_qmel AND s~tdname = v~qmnum Select语句生成以下短转储: Only the prefixed length fiel

我有以下代码:

 SELECT S~CLUSTD AS ZZCLUSTD
   INTO CORRESPONDING FIELDS OF TABLE @lt_viqmel_iflos
   FROM viqmel AS v
     LEFT OUTER JOIN stxl AS S
      ON s~tdobject = @lv_qmel
      AND s~tdname = v~qmnum
Select语句生成以下短转储:

Only the prefixed length field can be used to read from the LRAW field or
LCHR field S~CLUSTD.
内部表
lt_viqmel_iflos
是类型
viqmel_iflos
(包含DB table
QMEL
)的DB视图,我在其中添加了
ZZCLUSTD
类型char200

问题是我无法在QMEL中生成ZZCLUSTD类型LRAW,因为我得到以下错误:

因此,我唯一的选择(我知道)仍然是在char200中选择LRAW的前200个字符

这可能吗

或者是否有其他方法选择LRAW数据


我找到了关于这个主题的信息,但不幸的是,我无法使其适应我的场景:

事实上,这里有两个问题


第一个是表
QMEL
的激活错误:

字段
ZZCLUSTD
前面没有INT4类型的长度字段

包含LCHR和LRAW类型的列的DDIC表,要求它前面总是紧跟着一个类型的列(尽管消息中只显示INT4)


第二个问题是关于如何读取这样的字段必须始终同时读取两列,并且必须在LCHR/LRAW列之前“读取”INT2/INT4列。我能找到的解释这一限制的唯一参考资料是在注释中

STXL
表的INT2列命名为
CLUSTR
,以下代码起作用:

TYPES: BEGIN OF ty_viqmel_iflos,
         clustr   TYPE stxl-clustr, "INT2
         zzclustd TYPE stxl-clustd, "LCHR
       END OF ty_viqmel_iflos.
DATA lt_viqmel_iflos TYPE TABLE OF ty_viqmel_iflos.

SELECT S~CLUSTR, S~CLUSTD AS ZZCLUSTD
   INTO CORRESPONDING FIELDS OF TABLE @lt_viqmel_iflos
   FROM viqmel AS v
     INNER JOIN stxl AS S
      ON s~tdname = v~qmnum
   UP TO 100 ROWS.

注意:您的问题有点混乱,您同时引用了
STXL
中的
CLUSTD
ZZCLUSTD
中的
QMEL
。我不明白你到底想达到什么目的

注意:如果您想从表
STXL
中读取文本,有另一种解决方案,可以调用功能模块
read\u TEXT\u table
,或者
read\u MULTIPLE\u TEXT
,如果您愿意的话。附注2261311提供了这些资料。如果您没有或无法安装这些功能模块,您可以尝试执行相同的操作。它还包含对另一个讨论的引用


注意:更准确地说,LRAW包含字节,而不是字符,对于数据集群(在
STXL
的情况下),这些字节对应于与语句压缩并用`解压的任何值(在
STXL
的情况下为字符)。

ZZCLUSTD与问题关系不大。这只是我必须使用的命名约定,以便将CLUSTD附加到DB表QMEL中。正如您所建议的,我还使用CLUSTR选择了数据。我使用函数模块READ_TEXT从CLUSTD中提取数据。感谢您提供的所有信息!我的评论更多的是关于我不理解你的两个问题之间的关系:你创建了ZZCLUSTD/QMEL(ABAP字典中的错误消息),但是你读了CLUSTD/STXL(ABAP中的语法错误)。这是关于一个非常接近的主题的两个截然不同的问题。我认为我出现语法错误的原因可能是因为ZZCLUSTD/QMEL有这个错误。