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;
}
相关推荐
短剑重铸之日6 小时前
《ShardingSphere解读》16 改写引擎:如何理解装饰器模式下的 SQL 改写实现机制?
java·数据库·后端·sql·shardingsphere·分库分表·装饰器模式
q5431470876 小时前
VScode 开发 Springboot 程序
java·spring boot·后端
小涛不学习6 小时前
Java高频面试题(带答案版)
java·开发语言
big_rabbit05026 小时前
JVM堆内存查看命令
java·linux·算法
学习要积极6 小时前
Springboot图片验证码-EasyCaptcha
java·spring boot·后端
李少兄6 小时前
企业资源计划(ERP)系统全景指南
java·前端·数据库·erp
波波七6 小时前
SSM与Springboot是什么关系? -----区别与联系
java·spring boot·后端
myloveasuka6 小时前
[Java]单列集合
android·java·开发语言
ok_hahaha7 小时前
java从头开始-黑马点评-基础篇
java·开发语言
小涛不学习7 小时前
Java面试全攻略(基础 + 集合 + 并发 + JVM + 框架)
java·开发语言