【问题标题】:Oracle: Name is already used by an existing object although there is no object with that nameOracle:名称已被现有对象使用,尽管没有具有该名称的对象
【发布时间】:2017-08-12 05:15:55
【问题描述】:

我是甲骨文的新手。我正在尝试从 HPDMA 运行一个 sql 脚本,该脚本调用我的数据库所需的所有表创建脚本,但出现以下错误:

创建表 ABC.RESULTS_MODEL_OUTPUT * 第 1 行出现错误:ORA-00955:名称已被现有对象使用

我查询了数据库,看看是否有任何同名的对象。我运行了以下查询:

select * from all_objects where OBJECT_NAME like '%RESULTS_MODEL_OUTPUT%';

没有返回行,这意味着没有名称为“ABC.RESULTS_MODEL_OUTPUT”的对象。那为什么 Oracle 会报错呢?

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 名字都是大写的吗?全小写?引?尝试在查询中使用upper(OBJECT_NAME) like ...
  • 在创建表之前始终删除它。所以在你创建之前添加 drop table schema.tablename
  • 感谢您的评论。尝试使用 'upper(OBJECT_NAME)' 但这也不起作用。
  • 当您查询all_objects时,您是作为用户ABC连接的吗?如果不是,您可能无法看到它。检查作为该用户,和/或dba_objects。另外,检查脚本 - 也许表创建被执行了两次,也许是从一个杂散的斜线。 (虽然这可能意味着它正在清理自己,如果你之后仍然看不到它......)
  • @AlexPoole 是的,它对我有用。最初,我作为不同的用户连接。现在,我看到它存在于 all_objects 中。谢谢!

标签: sql oracle


【解决方案1】:

我以其他用户身份登录,因此我无法在 all_objects 表中找到表名(正如@Alexpoole 所指出的那样)。

我以“ABC”用户身份登录后就可以看到它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多