SAP ABAP 本地SQL概述
术语“本地SQL”是指可以静态传输到数据库接口的本机SQL接口的所有语句。 本地SQL语句不属于ABAP的语言范围,不遵循ABAP语法。 ABAP仅包含用于隔离其中可以列出Native SQL语句的程序段的语句。
在本机SQL中,主要可以使用特定于数据库的SQL语句。 这些将从本地SQL接口不变地传输到数据库系统并执行。 可以使用相关数据库的完整SQL语言范围,并且所寻址的数据库表不必在ABAP字典中声明。 还有一小组SAP特定的本地SQL语句,由本地SQL接口以特定方式处理。
要使用本地SQL语句,必须在其前面加上EXEC SQL语句,并以ENDEXEC语句结束。
以下是语法:
EXEC SQL PERFORMING <form>.
<Native SQL statement>
ENDEXEC.
这些语句定义ABAP程序中可以列出一个或多个Native SQL语句的区域。 输入的语句将传递到Native SQL界面,然后按如下所示进行处理:
- 对于所寻址的数据库系统的程序接口有效的所有SQL语句都可以在EXEC和ENDEXEC之间列出,特别是DDL(数据定义语言)语句。
- 这些SQL语句从Native SQL接口传递到数据库系统基本不变。 语法规则由数据库系统指定,特别是数据库对象的区分大小写规则。
- 如果语法允许单个语句之间的分隔符,则可以在EXEC和ENDEXEC之间包括许多本地SQL语句。
- 可以在EXEC和ENDEXEC之间指定SAP特定的本地SQL语言元素。 这些语句不会直接从Native SQL接口传递到数据库,但会适当地进行转换。
例子
SPFLI是用于存储航班时刻表信息的标准SAP表。 这在R / 3 SAP系统中可用,具体取决于版本和发布级别。 在将表名称SPFLI输入到相关SAP事务(如SE11或SE80)中时,可以查看此信息。 您还可以使用这两个事务查看此数据库表中包含的数据。
REPORT ZDEMONATIVE_SQL.
DATA: BEGIN OF wa,
connid TYPE SPFLI-connid,
cityfrom TYPE SPFLI-cityfrom,
cityto TYPE SPFLI-cityto,
END OF wa.
DATA c1 TYPE SPFLI-carrid VALUE 'LH'.
EXEC SQL PERFORMING loop_output.
SELECT connid, cityfrom, cityto
INTO :wa
FROM SPFLI
WHERE carrid = :c1
ENDEXEC.
FORM loop_output.
WRITE: / wa-connid, wa-cityfrom, wa-cityto.
ENDFORM.
上面的代码产生以下输出:
0400 FRANKFURT NEW YORK
2402 FRANKFURT BERLIN
0402 FRANKFURT NEW YORK
关于赛锐信息
作为SAP的资深合作伙伴,赛锐信息是一家专业提供SAP行业化管理软件解决方案的顾问公司,致力于为企业提供SAP ERP系统咨询服务、IT规划、业务流程优化、信息系统实施、行业信息系统方案开发,运营外包及售后维护等全面的服务方案。已服务1000+家不同行业、规模的大中小型企业客户。在电子高科技、汽车零部件、印刷包装、医疗器械、快消品、专业服务等行业信息化管理领域具有领导性地位。