首页 > 解决方案 > JDBC ORA-00955: 名称已被现有对象使用

问题描述

我正在通过 JDBC 创建一个动态临时表,但它失败并出现错误

通过 JDBC 查询: create table abcd_tmp as select * form abcd where 1=2;

 Error: ORA-00955: name is already used by an existing object

我已经检查了该论坛中与此错误相关的所有其他帖子,但没有用。就我而言,没有同名的此类表出口。(上例中的 abcd_tmp)

我已经双重验证没有这样的表。此外,即使我将名称从 更改abcd_tmpabcd_something,它仍然不起作用。我很确定错误是由于其他原因造成的..有什么想法吗?

标签: javaoraclejdbc

解决方案


该错误并未说明具有该名称的存在,而是object对象可以是任何东西——(表)、过程/函数/触发器/包/序列/同义词/视图/...

您应该查询ALL_OBJECTSUSER_OBJECTS验证您真正拥有的东西,例如

SQL> select owner, object_type from all_objects where upper(object_name) = 'EMP';

OWNER                          OBJECT_TYPE
------------------------------ -------------------
SCOTT                          TABLE

SQL>

然后你就会知道你真正拥有的是什么。


推荐阅读