Odps执行SQL报错,提示Please set odps.sql.type.system.odps2=true to use it.

Odps执行SQL报错,提示Please set odps.sql.type.system.odps2=true to use it.或提示Please add put { "odps.sql.submit.mode" : "script"} for multi-statement query in settings的解决方案

odps错误信息

java 复制代码
AnonymousSQLTask--ODPS-0130071:[1,474] Semantic analysis exception - DATE type is not enabled in current mode. 
Please set odps.sql.type.system.odps2=true to use it.
ODPS-0130071:[1,1165] Semantic analysis exception - DATE type is not enabled in current mode. 
Please set odps.sql.type.system.odps2=true to use it.

// 或提示下面的错误信息
com.aliyun.odps.OdpsException: 
Please add put { "odps.sql.submit.mode" : "script"} for multi-statement query in settings

解决方案:

在执行task前,将上面的配置信息增加进hints中

java 复制代码
public Instance sqlRunTable(String sql) throws OdpsException {
    Map<String, String> hints = new HashMap<>();
    hints.put("odps.sql.submit.mode", "script");
    hints.put("odps.sql.type.system.odps2", "true");
    SQLTask.setDefaultHints(hints);
    Instance instance = SQLTask.run(odps, sql);
    if (!instance.isSync()) {
        instance.waitForSuccess();
    }
    if (!instance.isSuccessful()) {
        log.error("ODPS执行SQL语句失败!{}", sql);
        for (String key : instance.getTaskResults().keySet()) {
            log.error("{}--{}", key, instance.getTaskResults().get(key));
        }
    }
    return instance;
}
相关推荐
seven97_top20 小时前
Springboot 常见面试题汇总
java·spring boot·后端
小蕾Java20 小时前
Java 开发工具,最新2025 IDEA 使用,保姆级教程
java·开发语言·intellij-idea
刘登辉21 小时前
idea使用联网缓存的pom进行离线开发
java·ide·intellij-idea·离线开发
Автомата Калашникова21 小时前
Java操作.docx文档 —— docx4j
java·开发语言
hello 早上好21 小时前
深入 Spring 条件化配置底层:从硬编码到通用注解的实现原理
java·后端·spring
亚林瓜子21 小时前
Spring中Date日期序列化与反序列化中格式设置
java·后端·spring·jackson·date
GISer_Jing21 小时前
Next.js数据获取演进史
java·开发语言·javascript
DokiDoki之父1 天前
Web核心—JSP入门/EL/JSTL标签/MVC+三层架构/一文速通
java·开发语言
寒月霜华1 天前
java-高级技术(单元测试、反射)
java·开发语言·单元测试·反射
独自破碎E1 天前
Leetcode2166-设计位集
java·数据结构·算法