首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有Denodo 8 VQL函数或VQL行可用于在VDP计划程序作业中引发错误?

是否有Denodo 8 VQL函数或VQL行可用于在VDP计划程序作业中引发错误?
EN

Stack Overflow用户
提问于 2021-08-09 09:56:44
回答 1查看 55关注 0票数 0

我的目标是在有新数据可用时加载缓存。数据每天加载到源表中一次,但是在不可预测的时间。

我一直在尝试设置数据可用性触发器VDP调度程序作业,如Denodo社区帖子中所述:

https://community.denodo.com/answers/question/details?questionId=9060g0000004FOtAAM&title=Run+Scheduler+Job+Based+on+Value+from+a+Query

这篇文章描述了在不满足条件时创建一个失败的调度程序作业。现在,我发现在某些情况下强制执行错误的唯一方法是使用(1/0),但由于某些原因,这并不总是有效的。我想知道是否有像普通SQL中那样的函数可以做到这一点,在Denodo文档中找不到任何东西。

下面是我的代码当前的样子:

--触发作业SELECT CASE WHEN ( data_in_cache = current_data ) THEN 1%0 ELSE 1 END FROM database.table;

缓存作业等待触发器作业成功,因此仅当缓存中的数据过期时才加载缓存。这并不总是有效的,尽管我觉得它应该有效。

希望有人有一个函数或VQL行,使Denodo调度程序VDP作业导致错误。

EN

回答 1

Stack Overflow用户

发布于 2021-11-04 16:37:38

这可以通过创建一个自定义函数来实现,该函数在执行时只抛出一个异常。它不需要是一个异常,您可以创建自己的异常,以便在错误跟踪中看到它。在任何情况下,它都可能是这样的…

代码语言:javascript
复制
@CustomElement(type = CustomElementType.VDPFUNCTION, name = "ERROR_SAMPLE_FUNCTION")
public class ErrorSampleVdpFunction {

    @CustomExecutor
    public CustomArrayValue errorSampleFunction() throws Exception {
        throw new Exception("This is an error");
    }
}

因此,您将像这样使用它:

代码语言:javascript
复制
--Trigger job SELECT CASE WHEN ( data_in_cache = current_data ) THEN errorSampleFunction() ELSE 1 END FROM database.table;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68710132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档