SAP ABAP 打开SQL概述
打开SQL指示允许直接访问当前AS ABAP的中央数据库中的数据的ABAP语句的子集。 打开SQL语句映射所有数据库系统支持的ABAP中的SQL的数据操作语言功能。
Open SQL的语句在数据库接口的Open 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字典中查看数据浏览器,以查看该记录已成功更新。
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)创建一个新记录。
上面的代码产生以下输出(表内容):
关于赛锐信息
作为SAP的资深合作伙伴,赛锐信息是一家专业提供SAP行业化管理软件解决方案的顾问公司,致力于为企业提供SAP ERP系统咨询服务、IT规划、业务流程优化、信息系统实施、行业信息系统方案开发,运营外包及售后维护等全面的服务方案。已服务1000+家不同行业、规模的大中小型企业客户。在电子高科技、汽车零部件、印刷包装、医疗器械、快消品、专业服务等行业信息化管理领域具有领导性地位。