- SAP ABAP 教程
- SAP ABAP - 首页
- SAP ABAP - 概述
- SAP ABAP - 环境
- SAP ABAP - 屏幕导航
- SAP ABAP - 基本语法
- SAP ABAP - 数据类型
- SAP ABAP - 变量
- SAP ABAP - 常量和字面量
- SAP ABAP - 运算符
- SAP ABAP - 循环控制
- SAP ABAP - 决策
- SAP ABAP - 字符串
- SAP ABAP - 日期和时间
- SAP ABAP - 数据格式化
- SAP ABAP - 异常处理
- SAP ABAP - 字典
- SAP ABAP - 数据域
- SAP ABAP - 数据元素
- SAP ABAP - 表
- SAP ABAP - 结构
- SAP ABAP - 视图
- SAP ABAP - 搜索帮助
- SAP ABAP - 锁对象
- SAP ABAP - 模块化
- SAP ABAP - 子程序
- SAP ABAP - 宏
- SAP ABAP - 函数模块
- SAP ABAP - 包含程序
- SAP ABAP - Open SQL 概述
- SAP ABAP - 原生SQL概述
- SAP ABAP - 内部表
- SAP ABAP - 创建内部表
- ABAP - 填充内部表
- SAP ABAP - 复制内部表
- SAP ABAP - 读取内部表
- SAP ABAP - 删除内部表
- SAP ABAP - 面向对象
- SAP ABAP - 对象
- SAP ABAP - 类
- SAP ABAP - 继承
- SAP ABAP - 多态性
- SAP ABAP - 封装
- SAP ABAP - 接口
- SAP ABAP - 对象事件
- SAP ABAP - 报表编程
- SAP ABAP - 对话编程
- SAP ABAP - 智能表单
- SAP ABAP - SAPscripts
- SAP ABAP - 用户出口
- SAP ABAP - 用户出口
- SAP ABAP - 业务附加接口 (Business Add-Ins)
- SAP ABAP - Web Dynpro
- SAP ABAP 有用资源
- SAP ABAP - 问答
- SAP ABAP - 快速指南
- SAP ABAP - 有用资源
- SAP ABAP - 讨论
SAP ABAP - 原生SQL概述
术语“原生SQL”指的是所有可以静态传输到数据库接口的原生SQL接口的所有语句。原生SQL语句不属于ABAP语言范围,也不遵循ABAP语法。ABAP只是包含用于隔离程序部分的语句,在这些部分中可以列出原生SQL语句。
在原生SQL中,主要可以使用数据库特定的SQL语句。这些语句从原生SQL接口不变地传输到数据库系统并执行。可以使用相关数据库的完整SQL语言范围,并且不需要在ABAP字典中声明所寻址的数据库表。还有一些小的SAP特定的原生SQL语句,这些语句由原生SQL接口以特定方式处理。
要使用原生SQL语句,必须在前面加上EXEC SQL语句,并在后面加上ENDEXEC语句。
以下是语法:
EXEC SQL PERFORMING <form>. <Native SQL statement> ENDEXEC.
这些语句定义了ABAP程序中的一个区域,可以在其中列出一种或多种原生SQL语句。输入的语句将传递到原生SQL接口,然后按如下方式处理:
所有对所寻址数据库系统的程序接口有效的SQL语句都可以在EXEC和ENDEXEC之间列出,特别是DDL(数据定义语言)语句。
这些SQL语句主要不变地从原生SQL接口传递到数据库系统。语法规则由数据库系统指定,特别是数据库对象的区分大小写规则。
如果语法允许在各个语句之间使用分隔符,则可以在EXEC和ENDEXEC之间包含多个原生SQL语句。
可以在EXEC和ENDEXEC之间指定SAP特定的原生SQL语言元素。这些语句不会直接从原生SQL接口传递到数据库,但会进行适当的转换。
示例
SPFLI是标准的SAP表,用于存储航班时刻信息。这在R/3 SAP系统中可用,具体取决于版本和发行级别。当您在相关SAP事务(例如SE11或SE80)中输入表名SPFLI时,您可以查看此信息。您还可以使用这两个事务查看此数据库表中包含的数据。
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
广告