gpt4 book ai didi

database - ABAP数据簇是如何存储在数据库中的?

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:13 26 4
gpt4 key购买 nike

可以使用 importexport 语句以及遵循模板的字典表(至少具有字段 MANDT, RELID, SRTFD, SRTF2, CLUSTR, CLUSTD )将数据簇存储在数据库中。

下面是两个示例语句,它们使用字典表 ta_test 和区域 testtab 将整个内部表 TEST 存储/检索为数据库中名称为 ztest 和 ID 为 AA 的数据集群

export testtab = ta_test to database ztest(AA) id 'TEST'.
import testtab = ta_test from database ztest(AA) id 'TEST'.

查看ztest表的内容,看到如下记录(前4个字段为主键):

MANDT   200
RELID AA
SRTFD TEST
SRTF2 0 (auto-incremented for each record)
CLUSTR integer value with a maximum of 2.886
CLUSTD a 128 character hexadecimal string

我还注意到以这种方式存储的数据量比内部表中的数据少很多(例如,内部表中的 1.000.000 条唯一记录导致 ztest 中只有 1.703 条记录 table )。在 compression off 语句上设置 export 确实增加了记录量,但还是少了很多。

我的问题:有人知道这是如何工作的吗?实际数据是否存储在其他地方,ztest 是否包含指向它的指针?压缩?加密?是否可以直接从数据库访问实际数据(跳过 ABAP 层)?

最佳答案

数据集群的内部格式没有记录(至少没有在官方文档中)。根据我的经验,它确实包含全部数据,而不仅仅是指针:将表条目传输到不同的系统——正如您在传输 ALV 列表布局时经常做的那样——足以将内容移动过来。此外,二进制 blob 似乎不包含太多关于数据结构的信息——如果您以不兼容的方式更改源/目标结构,您就有丢失数据的风险。从数据库层直接访问是不可能的(这实际上在整个文档的许多地方都有说明)。或许可以对编码/解码算法进行逆向工程,但既然您已经有了访问手头内容的语言语句,为什么还要费心呢?

关于database - ABAP数据簇是如何存储在数据库中的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13901689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com