abap - OpenSQL IN 操作数的正确类型
问题描述
我有导入的功能模块my_values
my_values
是字符串的自定义内部表类型。
这个“my_values”变量包含例如:[“foo”,“bar”]
我想从Z_MYTAB
列my_col
在 my_values 中的表中选择所有值。
我试过这个:
SELECT * FROM Z_MYTAB WHERE
my_col in @my_values INTO TABLE @DATA(my_rows).
但这失败并显示错误消息:
表 my_values 的行结构错误
(消息被翻译成英文。原文可能略有不同)
我可以循环,my_values
但我想避免这种情况。
如何IN
使用作为内部表的主机变量执行 SQL?
解决方案
选择 withIN
只能使用范围表。
可以像这样将内部表转换为范围表:
DATA ltr_value TYPE RANGE OF string.
ltr_value = VALUE #( FOR <my_value> IN my_values
( sign = 'I'
option = 'EQ'
low = <my_value> )
).
推荐阅读
- slack - Slack Web 浏览器和应用程序未在 Ubuntu 上加载
- jupyter-notebook - 如何解决 jupyter notebook 中的 SyntaxError?
- sql-server - 将多个 Excel 工作表导入到一个 SQL Server 表
- r - R中标签的度数符号搞砸了
- nestjs - 使用@UseGuards(JwtAuthGuard)时如何保留swagger doc abd req.user
- postgresql - PostgreSQL - 外部数据包装器用户映射密码
- networking - 可能发送数据时在中间网络节点聚合数据?
- quarkus - Quarkus 中的反应式休息客户端标头注入
- c# - 上传/下载图像时缺少数据
- sql - 如何在 SQL 中检查电话号码的有效性