首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSQLParser和Oracles LNNVL (类似于IIF)

JSQLParser和Oracles LNNVL (类似于IIF)
EN

Stack Overflow用户
提问于 2016-05-24 15:28:31
回答 1查看 168关注 0票数 0

我希望扩展JSQLParser,以便它能够接受oracle的IIF命令。以下stmt生成异常,因为函数使用表达式:

SELECT LNNVL(A > 10, 1, 0) FROM TBL_NAME;

你介意告诉我如何更改jj文件吗?

改变

IIF代之以LNNVLLNNVL只在其中的条件下有效,但不引发异常。

EN

回答 1

Stack Overflow用户

发布于 2016-05-26 05:46:26

在github使用JSqlParser将开始生产

代码语言:javascript
复制
function()

在这里,您必须修改jjt - File,因为这个版本的JSqlParser做了某种ASTNode构建。jj -文件是派生出来的.

目前有一个SimpleExpressionList被接受

代码语言:javascript
复制
"(" [ [<K_DISTINCT> { retval.setDistinct(true); } | <K_ALL> { retval.setAllColumns(true); }] (expressionList=SimpleExpressionList() | "*" { retval.setAllColumns(true); }) ] ")"

这只接受表达式,而不接受任何条件。您可以制作SimpleExpressionList的变体(可能是SimpleExpressionOrConditionList)和

代码语言:javascript
复制
ExpressionList SimpleExpressionConditionList():
{
    ExpressionList retval = new ExpressionList();
    List<Expression> expressions = new ArrayList<Expression>();
    Expression expr = null;
}
{
    ( expr=SimpleExpression()  | expr=Condition() )

    { expressions.add(expr); } ("," ( expr=SimpleExpression()  | expr=Condition() ) { expressions.add(expr); })*
    {
        retval.setExpressions(expressions);
        return retval;
    }
}

,这不是测试!

但这应该是有可能的。欢迎拉请求:https://github.com/JSQLParser/JSqlParser

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37417905

复制
相关文章

相似问题

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