org.dbunit.database.AmbiguousTableNameException异常
来源:互联网 发布:软件项目开工报告 编辑:程序博客网 时间:2024/05/16 08:58
org.dbunit.database.AmbiguousTableNameException
在jeesite数据库初始化中,发现报上述异常:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:
run (default-cli) on project jeesite: An Ant BuildException has occured: org.dbu
nit.database.AmbiguousTableNameException: ACT_GE_BYTEARRAY
[ERROR] around Ant part ...<dbunit userid="${jdbc.username}" driver="${jdbc.driv
er}" password="${jdbc.password}" url="${jdbc.url}">... @ 24:107 in D:\jeesite\th
inkgem-jeesite-cedd6b2\target\antrun\build-main.xml
1、异常原因
数据库中存在两个表名相同的表,可能SCHEMA名不同。
通过SQL语句可以查询到是哪两个SCHEMA下的表名重名:
select * from dba_tables where table_name like '%ACT_GE_BYTEARRAY%';
或者
select * from all_tables where table_name like '%ACT_GE_BYTEARRAY%';
OWNER TABLE_NAME TABLESPACE_NAME CLUSTER_NAME
ACTIVITI ACT_GE_BYTEARRAY ACTIVITI
JEESITE ACT_GE_BYTEARRAY JEESITE
原来是ACTIVITI中已经导入过名为“ACT_GE_BYTEARRAY”的表。
2、解决
因为SQL语句不好修改,若能修改,加上SCHEMA名或OWNER名应能消除该问题。
一种解决方法是,缩窄当前数据库用户的访问权限,从dba角色降级为connect和resource角色。只能访问自己的schema下的表,从而避免表名重复。
附加知识:
(1)Oracle角色、权限的一些常用视图
ORACLE中数据字典视图分为3大类, 用前缀区别,分别为:USER,ALL 和DBA,许多数据字典视图包含相似的信息。
USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息
ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息
DBA_*:有关整个数据库中对象的信息
(2)系统权限分类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
- org.dbunit.database.AmbiguousTableNameException异常
- org.dbunit.database.AmbiguousTableNameException 终极解决方案
- 终极解决dbunit使用中产生的AmbiguousTableNameException错误
- 遭遇org.dbunit.dataset.NoSuchTableException
- dbunit之org.dbunit.dataset.DataSetException: java.net.MalformedURLException解决方法
- DBUnit
- DBunit
- DBunit
- DbUnit
- DBunit
- Dbunit
- DBUnit向mysql导数据异常
- 异常org.hibernate.HibernateException: The database returned no natively generated identity解决方案
- DbUnit 简介和使用 (puts your database into a known state)
- DbUnit 简介和使用 (puts your database into a known state)
- [解决方法]org.dbunit.dataset.NoSuchTableException: Did not find table 'tab1' in schema 'null'
- org.dbunit.dataset.NoSuchColumnException: t_role.ROLE_TYPE - (Non-uppercase input column: role_type
- org.hibernate.AssertionFailure异常
- Unity3D学习笔记(十六)血条的实现
- 使用AdMob和Unity [Android]
- hadoop源码编译
- WPF圆形进度条制作
- Java网络通信编程学习
- org.dbunit.database.AmbiguousTableNameException异常
- UIBezierPath精讲
- marshmallow(博弈
- Java Reflection(十二):动态类加载与重载
- Unity3D学习笔记(十七)自定义鼠标形状
- 学习Discuz! X3.2记录:superslide幻灯特效2
- svn环境搭建难题解答
- 内存管理语义
- 24.UINavigation 和 UIViewController 的各种关系分析