如何从 DB Table select LRAW?
How to select LRAW from DB Table?
我有以下代码:
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.
内部 table lt_viqmel_iflos
是类型 viqmel_iflos
(包含数据库 table QMEL
的数据库视图),我向其附加了 ZZCLUSTD
类型char200.
问题是我无法在 QMEL 中将 ZZCLUSTD 类型设为 LRAW,因为出现以下错误:
所以我唯一的选择(据我所知)仍然是 select 到 char200 LRAW 的前 200 个字符。
这可能吗?
或者有其他方法可以 select LRAW 数据吗?
我找到了有关该主题的信息,但遗憾的是我无法将其适应我的场景:read LRAW data
其实这里有两个问题
第一个是table的激活错误 QMEL
:
Field ZZCLUSTD
does not have a preceding length field of type INT4
包含 LCHR 和 LRAW 类型的列的 DDIC table, 要求 它始终紧跟 INT2 or INT4 类型的列(尽管消息只说 INT4).
第二个问题是关于如何读取这样一个字段。 两列 必须始终同时读取,并且INT2/INT4 列必须是"read before" LCHR/LRAW 列。我能找到的解释此限制的唯一参考资料是注释 302788 - LCHR/LRAW fields in logical cluster tables.
STXL
table 的 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
,而 QMEL
中提到了 ZZCLUSTD
。我不明白你到底想达到什么目的。
注意:如果您想阅读 table STXL
中的文本,还有另一种解决方案,即调用函数模块 READ_TEXT_TABLE
,或者如果您愿意,可以调用 READ_MULTIPLE_TEXTS
.它们由注释 2261311 提供。如果您没有或不能安装这些功能模块,您可以尝试 this gist 做同样的事情。它还包含对另一个讨论的引用。
注意:为了信息,更准确地说,LRAW包含字节,而不是字符,对于数据簇(STXL
的情况),这些字节对应任何值([=的情况下的字符) 13=]) 用语句 EXPORT
and are to be unzipped with IMPORT
`.
压缩
我有以下代码:
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.
内部 table lt_viqmel_iflos
是类型 viqmel_iflos
(包含数据库 table QMEL
的数据库视图),我向其附加了 ZZCLUSTD
类型char200.
问题是我无法在 QMEL 中将 ZZCLUSTD 类型设为 LRAW,因为出现以下错误:
所以我唯一的选择(据我所知)仍然是 select 到 char200 LRAW 的前 200 个字符。
这可能吗?
或者有其他方法可以 select LRAW 数据吗?
我找到了有关该主题的信息,但遗憾的是我无法将其适应我的场景:read LRAW data
其实这里有两个问题
第一个是table的激活错误 QMEL
:
Field
ZZCLUSTD
does not have a preceding length field of type INT4
包含 LCHR 和 LRAW 类型的列的 DDIC table, 要求 它始终紧跟 INT2 or INT4 类型的列(尽管消息只说 INT4).
第二个问题是关于如何读取这样一个字段。 两列 必须始终同时读取,并且INT2/INT4 列必须是"read before" LCHR/LRAW 列。我能找到的解释此限制的唯一参考资料是注释 302788 - LCHR/LRAW fields in logical cluster tables.
STXL
table 的 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
,而 QMEL
中提到了 ZZCLUSTD
。我不明白你到底想达到什么目的。
注意:如果您想阅读 table STXL
中的文本,还有另一种解决方案,即调用函数模块 READ_TEXT_TABLE
,或者如果您愿意,可以调用 READ_MULTIPLE_TEXTS
.它们由注释 2261311 提供。如果您没有或不能安装这些功能模块,您可以尝试 this gist 做同样的事情。它还包含对另一个讨论的引用。
注意:为了信息,更准确地说,LRAW包含字节,而不是字符,对于数据簇(STXL
的情况),这些字节对应任何值([=的情况下的字符) 13=]) 用语句 EXPORT
and are to be unzipped with IMPORT
`.