如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)

说实话,我在用ABAP创建数据库表或者读取数据的时候,都是摸着石头过河的。
但只要一步步分解,学起来也不是那么难。
以下是根据我自己的陷阱经验进行的概述。

首先,我们来谈谈手表的组装。
由于我们提到使用 SE1 1 创建 ZPERSON 表,因此执行此步骤时要非常小心。
第一次创建表的时候,我输入的传递类为D,结果出现了“表无法激活”的信息,当时让我很紧张。
后来我发现我忘记检查申请表了。
虽然这在开发系统上是必要的,但在生产环境中必须更加小心。
关于字段配置,MANDT字段是系统自动添加的,但是你应该明白它是一个客户端参数,在做多租户隔离时尤其重要。
通常,PERSON_ID等主键直接使用CHAR类型,长度为1 0位就足够了。
保存时一定要选择包。
虽然 $TMP 当然有用,但它要求您在项目中使用像 ZLOCAL 这样的自定义包。
不然上网的话就是一场灾难。

数据读取部分是最困难的。
您的代码实际上非常标准,但是您应该注意一些小细节。
例如,从ZMYORDER读取数据时,使用SELECT SINGLE关联ZPERSON特别高效,但这需要建立ZPERSON表,并且客户ID不能为空。
因此,存在订单数据与姓名不符的客户。
最后我发现测试的时候客户ID被清除了。
另外,如果数据量很大,使用 SELECT 是一个非常糟糕的主意。
我曾经有一个项目,有几百W的订单数据,在使用SELECT读表时卡住了。
最后我改用显式字段+JOIN语句,性能提升了不少。

我在调试技巧方面有个人经验。
有一次,读取数据时,所有字段都是乱码。
最后发现问题出在客户端的语言设置上。
直接通过SE1 6 读取表数据效果很好,但是我在ABAP调试器上遇到了问题。
这迫使您在读取表之前检查字段类型和长度是否匹配,尤其是在混合使用 CHAR 和 NVARCHAR 的情况下。

对于外键关联,我们建议您使用 ON 语句显式声明条件。
不要效仿我老同事的例子,写WHERE customer_id =... 任何更改都会立即折叠相关字段。
加入我有一个使用创建的项目。
改变表结构时,可以直接改变ON条件,无需接触代码。
这个设计看起来还是很棒的。

最后说一下我遇到的坑。
有一次,在激活 ZMYORDER 表时,我忘记在技术设置中设置主键。
结果程序在读取数据时报主键冲突错误。
因此,在激活表之前,请务必使用“检查”按钮检查该表。
另外,如果数据量较大,避免使用INTO工作区直接输出,因为会超出内存容量。
使用 EXPORT TO 内存表代替,或者直接使用 RFC 调用其他系统。

几次运行后您就会习惯这些细节。
当谈到ABAP时,实践是关键。
只看理论是没有用的。
您必须在 SE1 1 中实际构建表,使用 SE1 6 读取数据,编写代码来读取它,并在出现问题时更改它。
来来回回两三遍,就会习惯了。

【DataStage】Oracle Enterprise Stage

您好,我对 Oracle Enterprise Stage 组件有一些经验。
我记得当我第一次遇到这个问题时,我还是一个初学者,对数据库连接和数据操作知之甚少。
现在我们来谈谈 DataStage 中的 Oracle Enterprise Stage 应用程序。
这很容易做到。

首先说一下场景。
我曾经有一个项目,需要从一个Oracle数据库中读取大量数据,并将其写入到另一个Oracle数据库中。
这需要仔细研究 Oracle Enterprise Stage 配置。
毕竟这个组件是连接Oracle数据库的桥梁。

就功能而言,Oracle Enterprise Stage非常全面。
它可以处理从读取和写入到充当查找和连接的输入源的所有事务。
但是,如果不注意细节,万一出了问题,那就麻烦了。

例如,我遇到了有关列表限制的陷阱。
有一次,我不小心使用了包含“”和“$”的列名,DataStage 报错。
然后我查看了 Oracle Enterprise Stage 文档,发现这两个字符是 DataStage 保留字符,应该避免。

另一个例子是添加参数。
在某些情况下,某些参数可能不可见。
这是因为默认情况下不显示它。
这时,在适当的地方右键添加或选择列,右下角就会显示相应的属性。

写入数据时,需要根据不同的需求配置相应的属性。
例如,WriteMethod 具有三个值:DeleteRows、Load 和 Upsert。
这三种方法涵盖了不同的场景,应根据实际情况进行选择。

记得有一次同事尝试使用DeleteRows删除数据,但是设置了错误的DeleteRowsMo​​de,所以数据没有被删除。
这个坑需要特别注意。
否则可能会影响数据的一致性。

读取数据时ReadMethod也很重要。
例如,我们推荐使用SQLBuilder生成的SQL,这样更灵活。
自动生成的 SQL 灵活性有限,不推荐。

最后,关于 Lookup 的 Oracle 输入有一些需要注意的地方。
例如,如果将 LookupType 的 MakeCombinable 属性设置为 Sparse,则必须将此属性设置为 True 以确保 Lookup 操作的正确性。

总之,Oracle Enterprise Stage 是一个非常强大的组件,但应谨慎使用。
细节决定成败,因此请花更多时间检查您的文档,以便从中获得更多信息。

主要的检索途径有哪几种类型?

计算机检索系统相当复杂。

硬件外观。
我用的是2 02 3 系统。
这包括高性能服务器硬件。
还有扫描仪、打印机等外围设备。
具体配置我不太清楚,我忘了。

软件。
软件系统非常保守。
例如,必须有一个数据库管理程序。
搜索软件与用户打交道。
我在 2 02 3 年尝试过一次,基于菜单的操作。
感觉很好。
我不确定这部分。

选择数据库非常详细。
根据 ISO 标准。
我检查了信息并在数据库 2 02 3 中查找。
参考文献,例如书目数据库。
中国机械工程文摘数据库就是这样。
它们也是数据库驱动的,例如产品目录。
数据来源比较复杂。
有数字数据库。
还有充满文献的数据库。
这类事情我记不太清楚了,我已经忘记了。

沟通很重要。
现在一切都在线了。
2 02 3 年,所有信息都将在线。
Mauris vitae diam elit。
每个节点都可以访问数据库。
注意资源共享。
这是相当方便的。
这取决于你。