当别名包含某些字符时,UCanAccess 出现“意外令牌”错误

Posted

技术标签:

【中文标题】当别名包含某些字符时,UCanAccess 出现“意外令牌”错误【英文标题】:UCanAccess "unexpected token" error when the alias contains certain characters 【发布时间】:2019-02-02 06:19:30 【问题描述】:

别名包含某些字符时UCanAccess SQL执行错误。

环境: 1.UCanAccess-4.0.4. 2. Windows 10。 3.Java语言。

参考图片:

【问题讨论】:

【参考方案1】:

感谢您报告问题。它已使用 console.bat 进行了复制:

UCanAccess>SELECT SUM(category_id) AS `sum(categories abc:category_id)` FROM `categories abc`;
UCanAccess>UCAExc:::4.0.4 unexpected token: CATEGORIES

UCanAccess>SELECT SUM(category_id) AS `sumcategories abc:category_id)` FROM `categories abc`;

·--------------------------------·
| sumcategories abc:category_id) |
·--------------------------------·
|                             47 |
·--------------------------------·


UCanAccess>SELECT SUM(category_id) AS `sum(categoriesabc:category_id)` FROM `categories abc`;

·--------------------------------·
| sum(categoriesabc:category_id) |
·--------------------------------·
|                             47 |
·--------------------------------·

另外值得注意的是,如果我们将表从categories abc 重命名为categories,那么使用原始列别名的查询就可以了

UCanAccess>SELECT SUM(category_id) AS `sum(categories abc:category_id)` FROM `categories`;

·---------------------------------·
| sum(categories abc:category_id) |
·---------------------------------·
|                              47 |
·---------------------------------·

该问题已报告给 UCanAccess 开发团队。

【讨论】:

以上是关于当别名包含某些字符时,UCanAccess 出现“意外令牌”错误的主要内容,如果未能解决你的问题,请参考以下文章

通过 UCanAccess 插入时出现“强制转换的字符值无效”错误

UCanAccess 出现 ClassNotFoundException 和 NoClassDefFound 错误

当 Jackcess 连接正常时,UCanAccess 驱动程序在尝试连接 Access 数据库时抛出异常

UCanAccess 4.0.2 大写列名找不到

JDBC 调用中的参数无效:参数索引超出范围(使用 Ucanaccess)

当某些数字包含逗号作为千位分隔符时如何读取数据?