SAP ABAP 系统进行 client 拷贝时遇到的 63999 table too wide during client copy 错误消息

使用事物码 SCC9 进行 client 之间数据拷贝时,遇到如下错误:63999 table too wide

这个错误在 SAP NOTE 2099033里有介绍。问题的根源是:

Limitation in the source code when table length is greater than 63999 Bytes

意思是试图拷贝一个 length 超过 63999 字节的数据库表。

在事物码 SE11 里,菜单 Utilites->Runtime Objects->Display 查看一个数据库表的 length:


解决方法

  1. 执行 report RSCCEXPT,将引起 copy 错误的数据库表,剔除出 client copy 过程。

  1. 使用 customizing transport 手动将被剔除出 client copy 的数据库表的内容进行传输。

SAP ABAP 中的表缓冲是 ABAP 表中的一个概念,用于提高性能(通常是 10 到 100 倍的数量级提升)并减少处理(访问)表的时间。

表的缓冲区是数据库层和应用程序层之间的接口。 应用层与缓冲区通信,缓冲区与数据库层通信,反之亦然。

数据库接口确定数据是否在缓冲区中。 如果没有,它会从数据库中获取数据并同步缓冲区。

ABAP 支持下列几种缓冲类型:

  1. 当使用完全缓冲(full bufferred)时,要么缓冲整个表,要么不缓冲任何记录。 当访问单个记录时,该表的整个数据/记录都会被缓冲。 缓冲是指所有记录都在缓冲表中。

完全缓冲适应于频繁读取但是极少写入的数据库表。

  1. 当使用 Generic Buffering 时,所有带有 Generic 键的记录都会被一次性缓冲。通用键仅用于从表中过滤数据的某些键的组合键。
    通用键是主键的一部分。在 SELECT 语句的 WHERE 条件中应提及所有通用键,否则会绕过缓冲区并直接从数据库中读取数据。

  2. Single-Record Buffering:仅缓冲已经被访问过的记录。

在事物码 SE11 里选中 Buffering Type 点 F1,能看到更多的帮助信息:

猜你喜欢

转载自blog.csdn.net/i042416/article/details/125466862
今日推荐