You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DBeaver 24.2执行Teradata脚本遇3932错误求助

问题:DBeaver执行Teradata脚本报错SQL 3932

使用DBeaver 24.2运行Teradata脚本时出现以下错误,但该脚本在Teradata SQL Assistant中可正常执行:

Error SQL [3932] [25000]: [Teradata Database] [TeraJDBC 20.00.00.34] [Error 3932] [SQLState 25000] Only an ET or null statement is legal after a DDL Statement.

执行的脚本如下:

CREATE MULTISET VOLATILE TABLE BASE_MOVIMENTO_MOVEL AS (
    SELECT
        FMLD.*
    FROM
        P_MVM.VW_FAT_MVMT FMLD
    WHERE
        DT_MVMT_LNHA >= TRUNC(CAST(TO_DATE('01' || '/' || SUBSTR('202408', 5,2) || '/' || SUBSTR('202408', 0,5), 'DD/MM/YYYY') AS DATE))
        AND DT_MVMT_LNHA <= LAST_DAY(CAST(TO_DATE('01' || '/' || SUBSTR('202408', 5,2) || '/' || SUBSTR('202408', 0,5), 'DD/MM/YYYY') AS DATE))
    ) WITH DATA PRIMARY INDEX(
        DT_MVMT_LNHA
    ) ON COMMIT PRESERVE ROWS;
ET;
SELECT * FROM BASE_MOVIMENTO_MOVEL;

解决方法

1. 调整DBeaver批处理执行设置

Teradata要求DDL语句执行后必须用ET;结束事务,才能执行后续语句。DBeaver默认可能将整个脚本作为单个批处理发送,导致驱动无法正确识别事务边界:

  • 右键点击Teradata连接,选择「编辑连接」
  • 切换到「SQL编辑器」标签页,找到「SQL处理」区域
  • 勾选「每条语句作为单独批处理执行」选项,确保语句分隔符为;
  • 保存设置后重新执行脚本

2. 拆分脚本分步执行

如果调整设置无效,可以手动拆分脚本为两个部分分别执行:

  • 第一部分执行DDL和事务结束语句:
CREATE MULTISET VOLATILE TABLE BASE_MOVIMENTO_MOVEL AS (
    SELECT
        FMLD.*
    FROM
        P_MVM.VW_FAT_MVMT FMLD
    WHERE
        DT_MVMT_LNHA >= TRUNC(CAST(TO_DATE('01' || '/' || SUBSTR('202408', 5,2) || '/' || SUBSTR('202408', 1,4), 'DD/MM/YYYY') AS DATE))
        AND DT_MVMT_LNHA <= LAST_DAY(CAST(TO_DATE('01' || '/' || SUBSTR('202408', 5,2) || '/' || SUBSTR('202408', 1,4), 'DD/MM/YYYY') AS DATE))
    ) WITH DATA PRIMARY INDEX(
        DT_MVMT_LNHA
    ) ON COMMIT PRESERVE ROWS;
ET;
  • 第二部分执行查询语句:
SELECT * FROM BASE_MOVIMENTO_MOVEL;

3. 修正脚本索引错误

注意:Teradata的SUBSTR函数起始索引为1,原脚本中SUBSTR('202408', 0,5)会返回错误的年份值,应改为SUBSTR('202408', 1,4)以获取正确的年份部分。

内容的提问来源于stack exchange,提问作者Caio Aloe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:58:11