将 SAP ABAP 数据库表里存储的文件二进制内容下载成为本地文件试读版

简介: 将 SAP ABAP 数据库表里存储的文件二进制内容下载成为本地文件试读版

SAP 标准产品和实际项目开发中,经常遇到一些需要将尺寸不大的文件(比如小于1MB的配置文件)的二进制内容,存储到 ABAP 数据库的情况。


比如笔者的 SAP OData 开发教程 里这篇文章,下图代码第 17 行,使用 ABAP OPEN SQL 将变量 ls_file_db 的值,插入到数据库表 zfile 里:


下图是数据库表 ZFILE 的字段列表,这个数据库表用于存放用户按照笔者这篇教程介绍的步骤,使用 SAP ABAP OData 服务将文件上传到 ABAP 服务器上后保存的文件内容。



具体的,文件的内容通过字段 VALUE 维护,数据类型是 RAWSTRING.

比如在我的系统里,ZFILE 表里有三条数据,代表三个上传后成功保存的文件:

双击任意一条记录,查看明细:

其中 VALUE 字段显示的是文件二进制内容的十六进制编码,这个编码同我们本地使用 WinHexUltraEdit 等软件打开后查看到的内容是一致的。


本文介绍如何将数据库表里这种 RAWSTRING 格式的内容下载到本地,重新生成新的文件。

本文使用到的完整 50 行 ABAP 代码在文末,这里介绍代码编写的关键要点。


相关文章
|
3月前
|
存储 关系型数据库 MySQL
MySQL——数据库备份上传到阿里云OSS存储
MySQL——数据库备份上传到阿里云OSS存储
146 0
|
1天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
15 2
|
15天前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
16 2
|
15天前
|
前端开发 Java 数据库连接
javamvc配置,增删改查,文件上传下载。
【10月更文挑战第4天】javamvc配置,增删改查,文件上传下载。
33 1
|
2月前
|
存储 SQL 专有云
支持配置审计日志的存储数据库
审计日志作为企业监管平台的重要依据,同时也是“等保三级”认证的必要考察项之一。Dataphin V4.3版本支持设置平台日志的存储数据源,帮助用户快速获取审计日志,同时介绍了不同部署模式的Dataphin如何查看审计日志的方法。
105 5
|
2月前
|
存储 NoSQL 关系型数据库
可以存储文件的数据库有哪些?
可以存储文件的数据库有哪些?
47 6
|
2月前
|
存储 NoSQL 关系型数据库
可以存储文件的数据库有哪些?
可以存储文件的数据库有哪些?
397 0
|
3月前
|
前端开发 数据库 Python
用Python轻松开发数据库取数下载工具
用Python轻松开发数据库取数下载工具
|
3月前
|
存储 缓存 负载均衡
带你认识DM 共享存储数据库集群
带你认识DM 共享存储数据库集群
67 3
|
3月前
|
存储 数据库
如何在数据库中存储小数:FLOAT、DECIMAL还是BIGINT?
【8月更文挑战第7天】在数据库中存储小数时,需谨慎选择数据类型:FLOAT、DECIMAL 或 BIGINT。FLOAT 存储空间小,适于非关键性小数如温度;但精度有限,可能产生误差。DECIMAL 能精确表示小数,适合货币金额等需要高度准确性的场景,不过占用空间较大。BIGINT 用于整数,若存储小数需额外转换处理。根据精度需求及应用场景选择合适类型至关重要。