当前位置: 首页 > 知识库问答 >
问题:

UCanAccess异常UCAEXC:::3.0.0需要列或不能删除表的唯一列

仲孙鸿畴
2023-03-14

已加载查询:

加载的索引

net.ucanaccess.jdbc.ucanaccessSqlException:UCAEXC::3.0.0在net.ucanaccess.jdbc.ucanaccessDriver.connect(UCANAccessDriver.java.driverManager.getConnection(DriverManager.java:258)在java.sql.driverManager.java:571)在java.sql.driverManager.getConnection(DriverManager.java:187)在c.jdbcutil.sqlException(未知源)位于org.hsqldb.jdbc.jdbc.jdbc.jdbc.jdbstatement.FetchResult(未知源)位于org.hsqldb.jdbc.jdbc.jdbc.jdbcstatement.executeUpdate(未知源)位于net.ucanaccess.converters.loadjet.exec(loadjet.java:1416)位于net.ucanaccess.converters.loadjet.exec(loadjet.java:1416)位于naccess.converters.loadjet$tablesLoader.creatable(loadjet.java:807)在net.ucanaccess.converters.loadjet$tablesLoader.creatable(loadjet.java:761)在net.ucanaccess.converters.loadjet$tablesLoader.creatables(loadjet.java:942),在net.ucanaccess.converters.loadjet$tablesLoader.loadjet.java:1036),在AccessDriver.Connect(ucanAccessDriver.java:243)...3个原因还包括:org.hsqldb.hsqldb.error.error.error.error.error.erro(未知源)在org.hsqldb.parserddl.compileCreateTableBody(未知源)在org.hsqldb.parserddl.compileCreateTableBody(未知源)在org.hsqldb.parserddl.compileCreate(未知源)在来源未知)在org.hsqldb.session.executeDirectStatement(来源未知)在org.hsqldb.session.execute(来源未知)..................................................................

共有1个答案

呼延原
2023-03-14

如果数据库包含未定义列的表,UCanAccess将在打开数据库时引发异常。

没有列的表不是有效的表。Access本身不允许我们保存这样的表...

...但是,可以使用DDL创建这样一个表,如下面的VBScript所示

Option Explicit
Dim con
Set con = CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\__tmp\31886535.accdb"
On Error Resume Next
con.Execute "DROP TABLE BadTable"
On Error Goto 0
con.Execute "CREATE TABLE BadTable (foo INT)"
con.Execute "ALTER TABLE BadTable DROP COLUMN foo"
con.Close
 类似资料:
  • 要删除表的列,请在ALTER table语句中使用drop column子句,如下所示: 错误:“rs”行或其附近出现语法错误1:ALTER TABLE res_partner rs

  • 我有一个包含元素的ArrayList(字段是name和type)。只有两种不同的可能类型(“edu”和“ent”),我希望每个类型都显示在自己的listview中。 我的想法是创建两个具有相同数据的新ArrayList,然后循环遍历每个并过滤不需要的元素,如下所示: ArrayList中有10个元素,每种类型5个。 问题是,在两个列表视图的末尾,有4个相同的项目以混合类型显示。 知道我做错了什么吗

  • 我试图将ArrayList的内容保存到一个txt文件中,但当我这样做时,会得到很多不需要的字符。逗号是我可以处理字符串的。replace()但我想知道是否有其他方法可以更有效地过滤这些类型的字符?尤其是“,”t[”txt文件中的一部分。上面的引号中还显示了其他字符,但我不想在这里复制它们。我要输出到文件的代码如下。我正在向ArrayList添加几个字符串,但问题似乎在于ArrayList本身。如下

  • 问题内容: 我尝试删除h2中以前创建为的列的唯一约束。 我试过了: 但是没有成功(如下): 如何正确消除此约束? 顺便一提: 似乎返回正确的输出。 问题答案: 在SQL语言中,标识符名称不能是表达式。您需要运行两个语句: 然后获取标识符名称,并运行该语句

  • 让我们考虑下面的PoxGrES查询: 当我删除周围的引号时,查询无法正确响应,但当我删除周围的引号时,查询就不能正确响应了。为什么?在这种情况下,正确的查询编写方法是什么,布尔列周围没有引号,文本列周围没有引号?还有别的吗?