UCanAccess 4.0.2 大写列名找不到

Posted

技术标签:

【中文标题】UCanAccess 4.0.2 大写列名找不到【英文标题】:UCanAccess 4.0.2 uppercase column names cannot be found 【发布时间】:2017-07-18 18:29:17 【问题描述】:

在我的 java 程序中,我想使用 UCanAccess 查询 * .mdb 中的一些列。但是,某些字符似乎是错误的,因为它将所有列名都转换为大写。例如,在一个平台上,列名egitim 变为大写字母ÈGITIM,而在另一个平台上变为ÈGİTİM。我希望我的程序独立于平台。 但是,如果我在查询中写egitim,它在第一个平台上工作正常,而我在第二个平台上遇到错误。如果我这次写EGİTİM,它在第一个平台上不起作用。有没有办法以编程方式设置 UCanAccess 的字符集?

你可以看到下面的代码:

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection conn = DriverManager.getConnection(JAtama.url);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select distinct egitim from dersler");

最后一行给出net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.2 user lacks privilege or object not found: EGITIM 异常。

两个平台都是 macOS Sierra。但其中一个是土耳其语,另一个是英语。 (在土耳其语中,大写字母 i 是 İ。

【问题讨论】:

请显示您的代码,以便人们可以复制该问题。您还可以指定您正在使用的平台吗? 我能够使用 UCanAccess 4.0.2 重新创建此问题,并将其报告给 UCanAccess 开发团队。 【参考方案1】:

这是 UCanAccess 4.0.2 及更早版本的一个已知问题。所需的修复程序已合并到主分支中,并将包含在 UCanAccess 的下一个版本中。

【讨论】:

以上是关于UCanAccess 4.0.2 大写列名找不到的主要内容,如果未能解决你的问题,请参考以下文章

UCanAccess 找不到我的数据库

Ucanaccess 4.0.3 在我的数据库中找不到特定表

找不到适合 jdbc:ucanaccess://C:\Users\Asim Iqbal\Documents\PersonInfo.accdb 的驱动程序

引用其自己的列别名的查询的 UCanAccess“找不到对象”错误

在 NetBeans 中导出 maven 项目后找不到 Ucanaccess 驱动程序

使用 ucanaccess 控制台出现错误:UCAExc:::3.0.2 用户缺少权限或找不到对象:DBO_TBLMATERIALS