很少会用native sql,恰好项目里用到了,做个简单记录:
Tcode:DBCO
上面配置只是看DB连接,至于配置肯定不会让ABAP插手。
下面代码只是为了解 书写的格式
实例代码:
DATA: con TYPE string VALUE 'JZYF'. "连接名称
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error. "异常
DATA: sql_error TYPE bapiret2-message.
"连接数据中心数据库
EXEC SQL.
CONNECT TO :
con "获取连接
ENDEXEC.
IF sy-subrc = 0.
TRY.
EXEC SQL.
insert into derp_ztmmjy_fw_orstre
(dept_code, zfield1, zfield2, zfield3, zfield4,
zfield5, zfield6, zfield7, zfield8, zfield9, zfield10)
values
( '11', "如果是取变量值,则前面加冒号,如果直接赋值,不要冒号
:l_wa_alv-ZFIELD1 , "预留字段1
:L_WA_ALV-ZFIELD2 , "预留字段2
:L_WA_ALV-ZFIELD3 , "预留字段3
:L_WA_ALV-ZFIELD4 , "预留字段4
:L_WA_ALV-ZFIELD5 , "预留字段5
:L_WA_ALV-ZFIELD6 , "预留字段6
:L_WA_ALV-ZFIELD7 , "预留字段7
:L_WA_ALV-ZFIELD8 , "预留字段8
:L_WA_ALV-ZFIELD9 , "预留字段9
:L_WA_ALV-ZFIELD10)
ENDEXEC.
EXEC SQL.
commit
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
sql_error = exc_ref->get_text( ).
"异常处理
ENDTRY.
EXEC SQL.
DISCONNECT :CON "关闭连接
ENDEXEC.
ENDIF.
特别注意的是,SAP里的时间日期格式,在ERP外数据库设计时,使用字符类型