内容纲要
概要描述
本文主要对 TDS 调度任务 SQL 执行模式做一个说明。
详细说明
在 TDS 3.1.1 Patch3 及后续版本中,调度任务中的 SQL 任务支持两种执行模式,即不拆分执行和拆分执行两种。
不拆分执行
不拆分执行是 TDS 3.1.1 Patch2 及之前版本的 TDS 中的默认模式,直接将 SQL 整体提交给 JDBC 执行。
在不拆分执行模式下,如果数据源为 MySQL 且 SQL 有多行,则必须在 JDBC 串中配置allowMultiQueries=true
参数。
拆分执行
拆分执行是 TDS 3.1.1 Patch3 及之后版本的默认模式,其引入了 SQLBook 的执行机制,可以保证与 SQLBook 中的执行结果一致。
注意事项
关于PLSQL
不同模式和场景对于 PLSQL 支持情况如下。
模式 | 场景 | 实际支持情况 |
---|---|---|
拆分 | 添加!set plsqlUseSlash true |
支持换行无分号,支持换行有分号,支持不换行有分号,结尾必须要有结束标志位/ |
拆分 | 不添加!set plsqlUseSlash true |
支持换行无分号 |
不拆分 | 添加!set plsqlUseSlash true |
不支持 |
不拆分 | 不添加!set plsqlUseSlash true |
支持换行无分号,支持不换行有分号 |
关于整体事务
在一个 SQL 任务中如果要保证整体的事务性,需要选择拆分执行模式。