使用DBeaver在Access数据库建表时遇SQL错误[42581]求助
问题原因及排查方向
可能原因
- 驱动配置错误:错误提示里的
UCAExc是UCanAccess(基于HSQLDB的Access JDBC驱动)的异常,说明DBeaver可能误选了HSQLDB连接类型,而非Access,导致驱动用HSQLDB语法解析SQL,无法识别Access的SELECT INTO语法。 - SQL语法不规范:
- 字符串常量
smth未加单引号,被识别为标识符引发语法错误,需改为'smth'。 - 表名/列名若含空格、特殊字符,未用方括号
[]包裹,导致解析失败。
- 字符串常量
- 驱动版本不兼容:UCanAccess需配套完整的依赖jar包(如jackcess.jar、hsqldb.jar等),仅单独更新hsqldb.jar可能导致版本不匹配,引发解析异常。
排查步骤
- 检查连接类型:在DBeaver中确认连接类型为「Access (UCanAccess)」,若选错则切换为正确类型并重新配置驱动。
- 修正SQL语法:给字符串常量加单引号,对特殊标识符用方括号包裹,再执行测试。
- 验证驱动完整性:下载完整的UCanAccess驱动包(包含所有依赖jar)替换现有文件,确保版本匹配(UCanAccess 5.0.1对应HSQLDB 2.7.1是兼容的,但需配套其他jar)。
- 简化SQL排查:先执行
SELECT * INTO new_tab FROM tab(去掉WHERE条件),判断是SELECT INTO本身的问题还是WHERE子句的错误。 - 检查文件权限:确认Access数据库文件(.mdb/.accdb)有读写权限,DBeaver可正常写入。
内容的提问来源于stack exchange,提问作者Denis Gontarev
相关产品推荐
相关产品推荐

