druid 解析SQL语句出错,应该是关键字truncate的问题

发布于 2021-12-03 23:33:05 字数 917 浏览 949 评论 5

@wenshao 你好,想跟你请教个问题:

我想问下,在druid中,truncate是不是也被认为是关键字了?
我在mysql中使用这个函数报错SQL语句比较长,就不贴出了。


 2015-11-18 17:14:26.182 | ERROR | com.alibaba.druid.filter.stat.StatFilter.merg
eSql(StatFilter.java:147) | merge sql error, dbType mysql, sql :
.........................
LEFT JOIN (SELECT orderNo,truncate(SUM(backCash),2) backcash FROM t_biz_backorder GROUP BY orderNo) bo ON tbo.orderNo = bo.orderNo
....................................

 com.alibaba.druid.sql.parser.ParserException: ERROR. token : TRUNCATE, pos : 68
9
        at com.alibaba.druid.sql.parser.SQLExprParser.primary(SQLExprParser.java
:567)
        at com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser.primary(My


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

为你鎻心 2021-12-04 16:00:54

我也是这个问题

无人问我粥可暖 2021-12-04 15:53:09

你可以先删除数据delete 之后再删除整张临时表就好了 有的服务器不支持这样的写法的 关键字识别不出来

1.DELETE
 ・DML语言
 ・可以回退
 ・可以有条件的删除

     DELETE FROM 表名
   WHERE 条件

2.TRUNCATE TABLE
 ・DDL语言
 ・无法回退
 ・默认所有的表内容都删除
 ・删除速度比delete快。

   TRUNCATE TABLE 表名

眼眸 2021-12-04 15:12:41

这条SQL语句我直接执行是可以的。

终陌 2021-12-04 13:58:00

回复
要是服务器测试没问题,那就用原生的执行,还不行就想想其他办法

猫九 2021-12-04 10:59:37

可以测试下服务器支持truncate函数不?

TRUNCATE(X,D)

这个函数的返回
X截断到D的小数位数的
值。如果D是0,则在小数点被除去。如果D为负,那么D的值的整数部分的值将被截断。

字段名时数字?

自己在服务器上运行打印出来的sql语句

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文