起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15348|回复: 15

[结贴] KSQL if函数错误

[复制链接]

163

主题

561

帖子

1175

积分

金牌会员

Rank: 6Rank: 6

积分
1175
QQ
发表于 2017-3-6 14:45:37 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: SELECT CO_QJD.*,(concat(CO_QJD.fQJKSSJ, :iff( CO_QJD.fQJKSJD = 'AM' , '上午' , '下午'))) as custom3  FROM CO_QJD CO_QJD LIMIT 0, 20
--> sql:
--> binds: []
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlSelect(Unknown Source)
        at com.justep.system.data.BizData.query(Unknown Source)
        at BizProcedure.query(BizProcedure.java:19)
        ... 26 more
Caused by: com.justep.model.exception.ModelException: 编码: JUSTEP154064; 提示: 计算表达式iff( CO_QJD.fQJKSJD = 'AM' , '上午' , '下午')出错
        at com.justep.model.exception.ModelException.create(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.evaluate(Unknown Source)
        at com.justep.system.ksql.visitor.SQLStruct.generateBinds(Unknown Source)
        at com.justep.system.ksql.visitor.SQLStruct.generateBinds(Unknown Source)
        ... 31 more
Caused by: com.justep.model.exception.ModelException: 编码: JUSTEP154075; 提示: 调用函数iff出错
        at com.justep.model.exception.ModelException.create(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.functionExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.constExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.unaryExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.multiExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.addExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.compExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.notExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.andExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.orExpression(Unknown Source)
        ... 34 more
Caused by: com.justep.exception.KSQLException: 编码: JUSTEP154115; 提示: KSQL语法错误, iff( CO_QJD^^.fQJKSJD = 'AM'中未找到需要的元素, 位置11期望是(
        at com.justep.exception.KSQLException.create(Unknown Source)
        at com.justep.system.ksql.token.TokenManager.matchToken(Unknown Source)
        at com.justep.system.ksql.token.TokenManager.matched(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.functionExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.constExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.unaryExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.multiExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.addExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.compExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.notExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.andExpression(Unknown Source)
        at com.justep.system.ksql.parser.ExpressionImpl.orExpression(Unknown Source)
        ... 43 more



如上错误,不知道哪里配置错误了?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-3-6 16:12:14 | 显示全部楼层
:iff自己定义的函数吗?

select部分不能这样用,执行的时候先执行内存函数,然后执行sql,执行内存函数的时是取不到关系的值的,可以用SQL.调用数据库函数实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

163

主题

561

帖子

1175

积分

金牌会员

Rank: 6Rank: 6

积分
1175
QQ
 楼主| 发表于 2017-3-6 16:14:50 | 显示全部楼层
jishuang 发表于 2017-3-6 16:12
:iff自己定义的函数吗?

select部分不能这样用,执行的时候先执行内存函数,然后执行sql,执行内存函数的时 ...

我就想实现个sql中的if,在KSQL查询编辑器中,我该如何实现。我直接写源码他报错,去选择函数也不行。
就想实现一个if(a=b, c, d)该怎么弄?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-3-6 16:57:01 | 显示全部楼层
sql中的函数直接用SQL.调用
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

163

主题

561

帖子

1175

积分

金牌会员

Rank: 6Rank: 6

积分
1175
QQ
 楼主| 发表于 2017-3-7 14:36:24 | 显示全部楼层
jishuang 发表于 2017-3-6 16:57
sql中的函数直接用SQL.调用

这个是在ontology.action.m配置文件中,在某个查询方法中,的select参数列表中添加查询列。打开时ksql编辑器,里面不能写直接写SQL中的if,提示错误。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-3-7 15:43:58 | 显示全部楼层
直接到源码中写,ksql编辑器可能不支持
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

163

主题

561

帖子

1175

积分

金牌会员

Rank: 6Rank: 6

积分
1175
QQ
 楼主| 发表于 2017-3-7 15:46:39 | 显示全部楼层
jishuang 发表于 2017-3-7 15:43
直接到源码中写,ksql编辑器可能不支持

直接写报错
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-3-7 16:33:36 | 显示全部楼层
具体错误信息发一下啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

163

主题

561

帖子

1175

积分

金牌会员

Rank: 6Rank: 6

积分
1175
QQ
 楼主| 发表于 2017-3-7 16:50:48 | 显示全部楼层
jishuang 发表于 2017-3-7 16:33
具体错误信息发一下啊

就是1楼信息
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2017-3-7 17:26:17 | 显示全部楼层
SQL.调用的确认是完全一样的错误?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-19 18:03 , Processed in 0.109442 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表