SQL查询不返回数据

问题描述 投票:0回答:2

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

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

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

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

提前感谢!

sap abap opensql
2个回答
0
投票

您可以将字段符号用于动态类型,将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>.

3
投票

您也可以使用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).
© www.soinside.com 2019 - 2024. All rights reserved.