为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:window
【CPU】:24
【问题描述】*:Dtcloud> SAVEPOINT SP_1955c204c67f11efbd5600a64402ab36
[2024-12-30 15:29:01] completed in 2 ms
Dtcloud> ROLLBACK TO SP_1955c204c67f11efbd5600a64402ab36
[2024-12-30 15:29:03] [3B000][-2121] 第1 行附近出现错误:[2024-12-30 15:29:03] 无效的SAVEPOINT名[SP_1955c204c67f11efbd5600a64402ab36]
创建存储点是成功的,rollback 的时候失败了,为什么
关键信息点在这个无效的存储点:
[SP_1955c204c67f11efbd5600a64402ab36]
相关信息有2:
SAVEPOINT SP_1955c204c67f11efbd5600a64402ab36
实际执行的是
SAVEPOINT SP_1955C204C67F11EFBD5600A64402AB36
ROLLBACK TO "SP_1955c204c67f11efbd5600a64402ab36"
宏观上:达梦的处理是在“新建”和使用时,都会转换成大写,以达到不用考虑大小写的体验。但是如果我们对名字使用双引号,就有强制匹配大小写,杜绝那种转换的效果。
这里看到您使用的不是原生的工具(我们已经确认了了,在原生工具中没问题),可能需要基于上述信息,核查 Dtclod工具是否做了类似双引号不一致的处理。
其次:
1)可以关注服务端的sqllog,看看 建立和使用时,名字是否一致;
2)当然,也不排除确实是版本问题,可以提供具体的版本信息,和dminit参数配置信息。以便大家进一步分析。