- 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 - 开放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 - SAPscript
- SAP ABAP - 客户出口
- SAP ABAP - 用户出口
- SAP ABAP - 业务附加功能
- SAP ABAP - Web Dynpro
- SAP ABAP 有用资源
- SAP ABAP - 问答
- SAP ABAP - 快速指南
- SAP ABAP - 有用资源
- SAP ABAP - 讨论
SAP ABAP - 开放SQL概述
开放SQL指的是ABAP语句的一个子集,它允许直接访问当前AS ABAP中央数据库中的数据。开放SQL语句将SQL中支持的数据操作语言功能映射到ABAP中,并且所有数据库系统都支持它。
开放SQL语句在数据库接口的开放SQL接口中转换为特定于数据库的SQL。然后将其传递到数据库系统并执行。开放SQL语句可用于访问在ABAP字典中声明的数据库表。默认情况下,访问AS ABAP的中央数据库,并且还可以通过辅助数据库连接访问其他数据库。
在ABAP程序中使用任何这些语句时,务必检查执行的操作是否成功。如果尝试将记录插入数据库表但未正确插入,则必须知道这一点,以便在程序中采取适当的操作。这可以通过使用已经使用的系统字段SY-SUBRC来完成。当语句成功执行时,SY-SUBRC字段将包含值0,因此可以检查该值,如果出现,则可以继续执行程序。
DATA语句用于声明工作区。让我们将其命名为'wa_customers1'。与其为此声明一种数据类型,不如声明构成表的几个字段。最简单的方法是使用LIKE语句。
INSERT语句
此处声明的wa_customers1工作区与ZCUSTOMERS1表类似,采用相同的结构,但本身不成为表。此工作区只能存储一条记录。声明后,可以使用INSERT语句将工作区及其包含的记录插入表中。此处的代码将显示为'INSERT ZCUSTOMERS1 FROM wa_customers1'。
工作区必须填充一些数据。使用ZCUSTOMERS1表中的字段名。这可以通过向前导航、双击代码中的表名或打开一个新会话并使用事务SE11来完成。然后可以将表的字段复制并粘贴到ABAP编辑器中。
以下是代码片段:
DATA wa_customers1 LIKE ZCUSTOMERS1. wa_customers1-customer = '100006'. wa_customers1-name = 'DAVE'. wa_customers1-title = 'MR'. wa_customers1-dob = '19931017'. INSERT ZCUSTOMERS1 FROM wa_customers1.
然后可以按如下方式使用CHECK语句。这意味着如果记录正确插入,系统将说明这一点。否则,将显示不等于零的SY-SUBRC代码。以下是代码片段:
IF SY-SUBRC = 0. WRITE 'Record Inserted Successfully'. ELSE. WRITE: 'The return code is ', SY-SUBRC. ENDIF.
检查程序,保存,激活代码,然后测试它。输出窗口应显示为“记录插入成功”。
CLEAR语句
CLEAR语句允许清除字段或变量,以便在其位置插入新数据,从而允许重复使用它。CLEAR语句通常用于程序中,并且它允许多次使用现有字段。
在前面的代码片段中,工作区结构已填充数据以创建要插入ZCUSTOMERS1表的新记录,然后执行验证检查。如果要插入新记录,则必须使用CLEAR语句,以便可以使用新数据再次填充它。
UPDATE语句
如果要同时更新表中的一条或多条现有记录,则使用UPDATE语句。与INSERT语句类似,声明一个工作区,填充要放入记录中的新数据,然后在程序执行时放入记录中。此处将使用INSERT语句先前创建的记录进行更新。只需编辑存储在NAME和TITLE字段中的文本。然后在新的一行上,使用与INSERT语句相同的结构,并且这次使用UPDATE语句,如以下代码片段所示:
DATA wa_customers1 LIKE ZCUSTOMERS1. wa_customers1-customer = '100006'. wa_customers1-name = 'RICHARD'. wa_customers1-title = 'MR'. wa_customers1-dob = '19931017'. UPDATE ZCUSTOMERS1 FROM wa_customers1.
执行UPDATE语句后,可以在ABAP Dictionary中查看数据浏览器以查看记录是否已成功更新。
MODIFY语句
MODIFY语句可以被认为是INSERT和UPDATE语句的组合。它可以用于插入新记录或修改现有记录。它遵循与前面两个语句类似的语法,以修改从输入到工作区的数据中修改的记录。
执行此语句时,将检查所涉及的关键字段与表中的关键字段。如果具有这些关键字段值的记录已存在,则将更新它。否则,将创建一个新记录。
以下是创建新记录的代码片段:
CLEAR wa_customers1. DATA wa_customers1 LIKE ZCUSTOMERS1. wa_customers1-customer = '100007'. wa_customers1-name = 'RALPH'. wa_customers1-title = 'MR'. wa_customers1-dob = '19910921'. MODIFY ZCUSTOMERS1 FROM wa_customers1.
在此示例中,使用CLEAR语句以便可以将新条目放入工作区,然后添加客户(编号)100007。由于这是一个新的、唯一的关键字段值,因此将插入一个新记录,并执行另一个验证检查。
执行此操作并在数据浏览器中查看数据时,将为客户编号100007(RALPH)创建一条新记录。
以上代码产生以下输出(表内容):