SQL查询没有return数据

SQL query does not return data

我正在开发一个 SAP 程序以从 material table (MARA) 中获取有关引用的信息。

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

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

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

您可以使用字段符号作为动态类型,并使用 CONVERSION_EXIT_ALPHA_INPUT 函数模块来格式化 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>.

您也可以使用 ABAP string templates 而不是 mkysoft 建议的转换出口:

DATA: ref TYPE string VALUE '2'.

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

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