运行ABAP程序时,在DBIF_DSQL2_SQL_ERROR
行出现运行时错误SELECT...
,并显示以下错误文本:
VBAK和VBAP表以及VBELN列的无效列错误和歧义列错误
ABAP代码:
*&---------------------------------------------------------------------*
*& Report ZSAM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZSAM.
DATA: BEGIN OF wa,
vbeln TYPE VBAK-VBELN,
vtweg TYPE VBAK-VTWEG,
posnr TYPE VBAP-POSNR,
matnr TYPE VBAP-MATNR,
vrkme TYPE VBAP-VRKME,
END OF wa.
WRITE: 'vbeln', 'vtweg', 'posnr', 'matnrr','vrkme'.
EXEC SQL PERFORMING loop_output.
SELECT VBAK-VBELN, VBAK-VTWEG, VBAP-POSNR, VBAP-MATNR, VBAP-VRKME
INTO :wa
FROM VBAK INNER JOIN VBAP on VBAK-VBELN = VBAP-VBELN
ENDEXEC.
FORM loop_output.
WRITE: / wa-vbeln, wa-vtweg, wa-posnr, wa-matnr, wa-vrkme.
ENDFORM.
代码中可能有什么问题以及如何解决?
答案 0 :(得分:3)
您需要使用。而不是-作为分隔符。您正在编写本机SQL,因此必须应用数据库特定的规则。
EXEC SQL PERFORMING loop_output.
SELECT VBAK.VBELN, VBAK.VTWEG, VBAP.POSNR, VBAP.MATNR, VBAP.VRKME
INTO :wa
FROM VBAK INNER JOIN VBAP on VBAK.VBELN = VBAP.VBELN
ENDEXEC.
答案 1 :(得分:2)
您不应使用本机SQL进行这样的简单查询。如您所写,您当时实际上正在学习ABAP,然后立即切换到Open SQL。
table{
width: 100% !important;
}