【发布时间】:2021-09-23 17:33:23
【问题描述】:
从 Talend 中的 tDBrow 执行 Snowflake 存储过程时,我收到以下错误消息。 从 Snowflake Web UI 执行时,相同的存储过程可以正常执行。您能否告知为什么我在从 Talend 而不是从 Web UI 执行时出现范围事务错误。
错误:
存储过程执行错误:在存储过程中启动的作用域事务不完整,已回滚。
【问题讨论】:
-
您是否在 Talend 和 WebUI 中使用相同的 Snowflake 角色运行 SP?
-
你应该确保你没有在你的命令之前开始一个事务(或者关闭一个现有的)。您能否发布您尝试播放的存储过程。
-
@NickW,是的,我使用相同的角色。
-
问题解决了。从 Talend 调用过程时,事务在过程执行之前开始,在执行之后结束。我应该在过程中明确定义事务的范围。因此,我分别在过程的开头和结尾(返回之前)添加了这两行:snowflake.createStatement({sqlText: "BEGIN TRANSACTION"}).execute(); snowflake.createStatement({sqlText: "COMMIT"}).execute();
标签: stored-procedures snowflake-cloud-data-platform talend