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

QQ登录

只需一步,快速开始

查看: 6889|回复: 9

[结贴] KSQL执行批量insert报错

[复制链接]

21

主题

55

帖子

185

积分

初级会员

Rank: 2

积分
185
QQ
发表于 2019-7-10 17:53:15 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
Biz层代码执行失败
Iterator<String> it = newrows.iterator();
StringBuffer sb = new StringBuffer();
while(it.hasNext()){
sb.append("insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ");
sb.append("('"+it.next()+"','"+fPromoprojBID4+"',0);");
}
KSQL.executeUpdate(sb.toString(), null, "/TH/promotionERP/data", null);


报错内容
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: insert into TH_PROJEXECUTE  (TH_PROJEXECUTE,fPromoprojBID4,version) values ('R2A44FDD9EE93BDF9MDL','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlInsert(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlExecuteUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at PromotionERP.queryTH_PROJEXECUTE(PromotionERP.java:147)
        ... 30 more
Caused by: com.justep.exception.KSQLException: 编码: JUSTEP154115; 提示: KSQL语法错误, H_PROJEXECUTE  ^^(TH_PROJEXECUTE中未找到需要的元素, 位置28期望是<Identifier>
        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.match(Unknown Source)
        at com.justep.system.ksql.parser.AbstractParser.modifyConceptNode(Unknown Source)
        at com.justep.system.ksql.parser.InsertParser.start(Unknown Source)
        at com.justep.system.ksql.parser.InsertParser.start(Unknown Source)
        at com.justep.system.ksql.parser.AbstractParser.parse(Unknown Source)
        ... 36 more




91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35915
发表于 2019-7-11 08:47:00 | 显示全部楼层
确认是你发的代码吗?明显不一样,你的代码中别名,报错的是没有别名的

error.png


远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

21

主题

55

帖子

185

积分

初级会员

Rank: 2

积分
185
QQ
 楼主| 发表于 2019-7-11 09:07:00 | 显示全部楼层
jishuang 发表于 2019-7-11 08:47
确认是你发的代码吗?明显不一样,你的代码中别名,报错的是没有别名的

两种方式都试过的,下面最新的,批量insert

if(newrows != null && newrows.size() != 0){
Iterator<String> it = newrows.iterator();
StringBuffer sb = new StringBuffer();
while(it.hasNext()){
sb.append("insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ");
sb.append("('"+it.next()+"','"+fPromoprojBID4+"','0');");
}
KSQL.executeUpdate(sb.toString(), null, dataModel, null);
}



--报错
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R2A44FDD9EE93BDF9MDL','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RB53F4CC0AD3819A36Q6','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RB30D6F8C31474BD0HBL','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RCFAB08731A97E7B9L6A','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R0B6D1345DD8FE4E4GOU','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R5B344BC40F3BC04FB0C','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R139AA4D9AA55B8D2KIY','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R40BE98EFAAE0091FCBW','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R743B65F4C0CCD295E22','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RE093F7B804FA0150JL2','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R4F3240AD5B9B413AX6R','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R65C712C49D51A18A8M5','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RFCAEF229B342C437TPA','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RC2B4AA3AD78BDD6B6P7','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RE1833F3FDB077CA7YNQ','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R310E77F13A6D184DLH2','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R743DC5D013B1ABAEG94','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RE5BC5280214E0486OL5','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RB505FFED0D024130AW6','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RAEA0A9C4655800E8VU3','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R59E3BB12D203F45A7A6','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R2D552343BC8E46046NY','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RB13C774965EF8558FVC','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RC737782DEACEFA53UPU','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('RC2C5517597CE0A4D5JZ','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R5D98B1A652EA7FD7GXJ','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R137649590B755372O4J','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R10BA03099A1C0393N9C','42AAFF28583B4B019C5E8CEFC2EF4E6A','0');
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlInsert(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlExecuteUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at PromotionERP.queryTH_PROJEXECUTE(PromotionERP.java:203)
        ... 30 more
Caused by: com.justep.exception.KSQLException: 编码: JUSTEP154115; 提示: KSQL语法错误, FC2EF4E6A','0')^^;insert into TH中未找到需要的元素, 位置130期望是<EOF>
        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.match(Unknown Source)
        at com.justep.system.ksql.parser.InsertParser.start(Unknown Source)
        at com.justep.system.ksql.parser.InsertParser.start(Unknown Source)
        at com.justep.system.ksql.parser.AbstractParser.parse(Unknown Source)
        ... 36 more
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35915
发表于 2019-7-11 09:29:33 | 显示全部楼层
没有这样执行的,在java标准的sql可以这样执行?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

21

主题

55

帖子

185

积分

初级会员

Rank: 2

积分
185
QQ
 楼主| 发表于 2019-7-11 10:07:39 | 显示全部楼层
jishuang 发表于 2019-7-11 09:29
没有这样执行的,在java标准的sql可以这样执行?

刚开始使用标准的mysql批量插入语句写的,也是执行不了,后面查了论坛文章(http://bbs.wex5.com/forum.php?mo ... mp;highlight=insert)如果不是,那请问KSQL批量插入数据要怎么写?
回复 支持 反对

使用道具 举报

93

主题

189

帖子

822

积分

高级会员

Rank: 4

积分
822
QQ
发表于 2019-7-11 10:17:01 | 显示全部楼层
青鱼 发表于 2019-7-11 10:07
刚开始使用标准的mysql批量插入语句写的,也是执行不了,后面查了论坛文章(http://bbs.wex5.com/forum.p ...

可以试试executeBatch批量插入
有一天,你会遇到一个,彩虹般绚烂的人。
回复 支持 反对

使用道具 举报

21

主题

55

帖子

185

积分

初级会员

Rank: 2

积分
185
QQ
 楼主| 发表于 2019-7-11 10:20:53 | 显示全部楼层
愤怒的橘子 发表于 2019-7-11 10:17
可以试试executeBatch批量插入

KSQL有这个API吗?没有看到额
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35915
发表于 2019-7-11 11:19:56 | 显示全部楼层
不能这样追加字符串啊,要每个insert into都执行一次executeUpdate啊

你那样是把所有的语句按一个sql处理的,不是批量执行
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

21

主题

55

帖子

185

积分

初级会员

Rank: 2

积分
185
QQ
 楼主| 发表于 2019-7-11 11:43:05 | 显示全部楼层
本帖最后由 青鱼 于 2019-7-11 11:45 编辑
jishuang 发表于 2019-7-11 11:19
不能这样追加字符串啊,要每个insert into都执行一次executeUpdate啊

你那样是把所有的语句按一个sql处理 ...

单独执行一条sql也不行啊

Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: insert into TH_PROJEXECUTE p (p,p.fPromoprojBID4,p.version) values ('R2A44FDD9EE93BDF9MDL','8E81F7D5B5A34001A5BF0FFFF30867E4',0);
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlInsert(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlExecuteUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at PromotionERP.queryTH_PROJEXECUTE(PromotionERP.java:213)
        ... 30 more
Caused by: com.justep.exception.KSQLException: 编码: JUSTEP154115; 提示: KSQL语法错误, FFFF30867E4',0)^^;中未找到需要的元素, 位置128期望是<EOF>
        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.match(Unknown Source)
        at com.justep.system.ksql.parser.InsertParser.start(Unknown Source)
        at com.justep.system.ksql.parser.InsertParser.start(Unknown Source)
        at com.justep.system.ksql.parser.AbstractParser.parse(Unknown Source)
        ... 36 more TIM图片20190711114117.png
正常通过其他工具执行是可以的

TIM图片20190711114347.png
回复 支持 反对

使用道具 举报

21

主题

55

帖子

185

积分

初级会员

Rank: 2

积分
185
QQ
 楼主| 发表于 2019-7-11 12:00:48 | 显示全部楼层
结贴,直接用SQL批量执行,不用KSQL

  Iterator<String> it = newrows.iterator();
        StringBuffer sb = new StringBuffer();
        sb.append("insert into TH_PROJEXECUTE  (fID,fPromoprojBID4,version,fTs) values ");
        while(it.hasNext()){
                sb.append("('"+it.next()+"','"+fPromoprojBID4+"',0,sysdate()),");
        }
        sb.deleteCharAt(sb.length()-1);
        sb.append(";");
        SQL.executeUpdate(sb.toString(), null, dataModel, null);
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 20:04 , Processed in 0.080083 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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