一、ABAP OPEN SQL语法
如果要在ABAP中使用Open SQL 需要注意使用符合其规则的语法,SQL过程中的变量都需要使用@来转义,以下为普通SQL 与 Open SQL 之间的语法转换,
- 普通SQL:
SELECT MAX( MATNR )
INTO IT_TAB-MATNR
FROM MARA
WHERE MATNR LIKE LV_MATNR_01
- Open SQL:
SELECT MAX( MATNR )
FROM MARA
WHERE MATNR LIKE @LV_MATNR_01
INTO @DATA(GV_MATNR)
二、Open SQL CONCAT函数
1、在ABAP中使用CONCAT函数,需要符合ABAP Open SQL的语法,包括ABAP中的变量要用@转义,列表中的元素必须使用逗号分隔,INTO放置在SQL的最后,CONCAT函数可以将获取值粘贴起来,可以定义粘贴字段的占长以及占位符。
2、实例:使用lpad函数将字段填充,并使用concat函数拼接。
SELECT CONCAT( CONCAT( CONCAT( MANDT, LPAD( CARRID,15,'# ' ) ),
LPAD( CARRNAME,15,'% ' ) ) ,
LPAD( CURRCODE,15,' ' ) ) AS LINE
FROM SCARR
INTO TABLE @DATA(RESULT