为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: dm8
【操作系统】:linux
【CPU】:
【问题描述】*:
flowable流程引擎适配达梦数据库的时候。我们选择了oracle的兼容模式,然后本地用oracle的databaseId映射方式处理。
调用flowable部署Api接口的时候。会报错### Cause: dm.jdbc.driver.DMException: 无效的十六进制数字。从参数上看给进去的是一个ByteArrayInputStream。这里数据库应该对应的是一个blob字段。在使用兼容 Oracle 模式,且执行oracle的sql语句Java 的 ByteArrayStream 如何存储到blob类型的字段中?
目前用oracle数据库不会有这个问题,达梦切换到mysql的模式也不会有这个问题,保持oracle兼容模式,databaseId的映射关系配置mysql也可以~
Preparing: INSERT ALL INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) VALUES (?, 1, ?, ?, ?, ?) INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) VALUES (?, 1, ?, ?, ?, ?) SELECT * FROM dual
==> Parameters: 1441322658867318785(String), bpm覆盖0802.bpmn20.xml(String), java.io.ByteArrayInputStream@61c98b6c(ByteArrayInputStream), 1441322658867318784(String), false(Boolean), 1441322660419211264(String), bpm覆盖0802.op_99999.png(String), java.io.ByteArrayInputStream@7e9e125f(ByteArrayInputStream), 1441322658867318784(String), true(Boolean)
请升级数据库版本到DM8.1.1.144或者之后的版本,并同步更新jdbc驱动包
达梦数据库 dm8 的 dmarch.ini 配置文件 不支持通过环境变量替代密码字段(如 ARCH_DEST 中的密码部分)。官方文档未提及 dmarch.ini 支持环境变量配置,且密码类参数通常建议直接使用加密存储或通过操作系统安全机制管理。
加密存储密码
使用达梦自带的加密工具(如 dmcrypt)对密码进行加密,然后在 dmarch.ini 中配置加密后的值。
示例:
ARCH_DEST = SYSDBA/!ENCRYPTED_PASSWORD@10.10.10.10:5234
操作系统环境变量(需自定义支持)
若需通过环境变量注入密码,需自行开发中间层脚本或工具,读取环境变量并动态替换配置文件中的密码部分,再启动数据库服务。
示例流程:
export DB_PASSWORD="your_password"
sed -i "s|!Fqdpf5mjkjHhsf2|$DB_PASSWORD|g" dmarch.ini
systemctl start DAMENG
安全加固
chmod 600 dmarch.ini),避免未授权访问。如需进一步确认,建议参考达梦官方文档或联系技术支持,核实 dmarch.ini 的具体参数支持范围。
如果以上能为您解决问题,请点击“设为最佳答案”并确认,谢谢!

要把详细的报错信息贴出来看看