ABAP 泛型编程实战 - 分享一个数据库表内容的拷贝工具试读版

简介: ABAP 泛型编程实战 - 分享一个数据库表内容的拷贝工具试读版

ABAP 泛型编程技术,在本教程之前的多篇文章已经有所介绍:

笔者在实际工作中,经常需要对一些 SAP 系统标准的数据库表进行一些调研工作,比如调整数据库表的字段,或者对这张标准数据库表的内容,进行增删改查等等。

因为是调研性质,自己也没有 100% 把握,所以我一般习惯先将标准的数据库表,拷贝出来成为一个 Z 表。比如下面这张 SAP CRM 系统里标准的数据库表 ZCRMC_OBJECTS:

使用 SE11 事务码里提供的拷贝功能:

在表名字前添加 Z 即可:

下面是拷贝出来的 Z 表,数据结构同原来标准的表一模一样:

然而这只是数据库表的结构做了拷贝,不包含数据库里存放的记录。为此我开发了一个小工具,利用了 ABAP 泛型编程技术,只需要在工具输入参数里,指定源数据库表,和目标数据库表这两张表的名称,工具就能自动将源数据库表的全部内容,拷贝到目标数据库表去。

当然,既然是泛型编程,我的工具源代码里,就没有硬编码任何关于 CRMC_OBJECTS 或者 ZCRMC_OBJECTS 这两张数据库表的结构信息。

所谓 ABAP 泛型编程,主要通过泛型数据类型 来实现,而泛型数据类型的实现,离不开 ABAP 的 Field Symbol.

泛型数据类型允许我们在声明变量、类或接口时不指定具体的数据类型,而是使用类型为 ANY 或者 TABLE 的 Field Symbol 来表示。这些 Field Symbol 在应用程序执行时,才能确定其具体的数据类型。

听起来可能有些抽象,不过不要紧,我们通过具体的例子来实战。

执行笔者开发的数据库表内容拷贝工具(完整源代码在文末),指定两个参数:

  • 源数据库表名:维护想要将其内容复制出来的数据库表名称,在我的使用场景里,通常是 SAP 标准数据库表名称。
  • 目标数据库表名:从 SAP 标准数据库表拷贝出来的 Z 表的名称。

执行完毕后,打印出成功拷贝的数据库表记录数:

下面是详细的源代码讲解。

相关文章
|
23天前
|
SQL 数据库 索引
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
19 1
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
|
25天前
|
存储 NoSQL Java
Java数据库编程指南:实现高效数据存储与访问
【4月更文挑战第2天】Java开发者必须掌握数据库编程,尤其是JDBC,它是连接数据库的标准接口。使用Spring JDBC或JPA能简化操作。选择合适的JDBC驱动,如MySQL Connector/J,对性能至关重要。最佳实践包括事务管理、防SQL注入、优化索引和数据库设计。NoSQL数据库如MongoDB也日益重要,Java有对应的驱动支持。理解这些概念和技术是构建高效数据库应用的基础。
Java数据库编程指南:实现高效数据存储与访问
|
29天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
96 0
|
2天前
|
SQL 关系型数据库 MySQL
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
|
3天前
|
SQL 关系型数据库 MySQL
第十三章 Python数据库编程
第十三章 Python数据库编程
|
3天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
3天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
ava从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
|
7天前
|
SQL 关系型数据库 MySQL
Python与MySQL数据库交互:面试实战
【4月更文挑战第16天】本文介绍了Python与MySQL交互的面试重点,包括使用`mysql-connector-python`或`pymysql`连接数据库、执行SQL查询、异常处理、防止SQL注入、事务管理和ORM框架。易错点包括忘记关闭连接、忽视异常处理、硬编码SQL、忽略事务及过度依赖低效查询。通过理解这些问题和提供策略,可提升面试表现。
28 6
|
12天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
23天前
|
数据库 存储 BI
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
12 0
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版

热门文章

最新文章