Abap SQL查询不返回数据

Abap SQL查询不返回数据,abap,opensql,Abap,Opensql,我正在开发一个SAP程序,以从物料表(MARA)获取有关参考的信息 首先,我获取某些引用,然后使用循环,我需要为每次迭代进行其他查询: SELECT MARA~BISMT FROM mara WHERE mara~matnr = @ref INTO @var. 我知道问题是类型冲突(mara~matnr是字符,ref是字符串),如何将两者转换为相同的类型并查看结果?您可以使用字段符号作为动态类型,使用转换\u退出\u ALPHA\u输入功能模块为db格式化值 TABLES: mara.

我正在开发一个SAP程序,以从物料表(
MARA
)获取有关参考的信息

首先,我获取某些引用,然后使用循环,我需要为每次迭代进行其他查询:

SELECT
  MARA~BISMT
FROM mara
WHERE mara~matnr = @ref
INTO @var.

我知道问题是类型冲突(
mara~matnr
是字符,
ref
是字符串),如何将两者转换为相同的类型并查看结果?

您可以使用字段符号作为动态类型,使用
转换\u退出\u ALPHA\u输入
功能模块为db格式化值

TABLES: mara.

DATA: ref TYPE string,
      var TYPE string.

FIELD-SYMBOLS: <fs_ref> TYPE any.

ref = '11'.

ASSIGN ('mara-matnr') TO <fs_ref>.
CHECK sy-subrc IS INITIAL.

<fs_ref> = ref.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input   = <fs_ref>
 IMPORTING
   output   = <fs_ref>.


SELECT SINGLE mara~bismt
  FROM mara
  INTO @var
 WHERE mara~matnr = @<fs_ref>.
表格:mara。
数据:ref类型字符串,
变量类型字符串。
字段符号:键入任意。
ref='11'。
将('mara-matnr')分配给。
检查sy subrc是否为首字母。
=参考。
调用函数“转换\退出\阿尔法\输入”
出口
输入=
进口
输出=。
选择单个mara~bismt
来自马拉
进入@var
其中mara~matnr=@。
您也可以使用mkysoft建议的转换出口来代替:

DATA: ref TYPE string VALUE '2'.

ref = |{ CONV matnr( ref ) ALPHA = in  }|.

SELECT SINGLE bismt
  FROM mara
 WHERE matnr = @ref
  INTO @DATA(var).

TABLES语句已过时,并在类内抛出语法错误,不应使用它。我认为您谈论的是外部(
ref
)和内部值(
mara~matnr
),您可以通过函数模块
RS_CONV_EX_2_IN
或语句
WRITE
(从内部到外部)。