sql - 删除了一个 Oracle 表,现在无法创建同名表
问题描述
我在 Oracle 12c 上,并删除了一个基表WIP_DISCRETE_JOBS
。我们创建了一个备份表,如:
CREATE TABLE WDJ_BKP AS (SELECT * FROM WIP_DISCRETE_JOBS)
DROP TABLE WIP_DISCRETE_JOBS;
COMMIT;
现在,当我尝试从备份表中恢复时,它会出错。
CREATE TABLE WIP_DISCRETE_JOBS AS (SELECT * FROM WDJ_BKP)
ORA-00955 name is already used by existing object.
但是如果我们查询没有返回任何行ALL_OBJECTS
。WIP_DISCRETE_JOBS
问题是什么?
解决方案
我们终于解决了这个问题。问题:Oracle 11gR2 以后,数据库有版本,这是版本的类型。您有当前版本。设置版本后需要查询ALL_OBJECTS或DBA_OBJECTS
ALTER SESSION SET EDITION=<EDITION NAME>
查看其他版本中的对象。
可以从 DBA_EDITIONS 查询所有会话
有一些版本具有与此表同名的同义词。通过设置到每个版本来删除同义词后,我们就可以创建表了。
推荐阅读
- java - 从文件 Java 中每行读取一个数字
- python - 通过 xpath 查找多个 td 标签
- flutter - 在模拟器中工作,但在真实设备中不工作
- vue.js - 为什么我的选择值已更改但仍显示旧值?
- sql - 选择 1 个 ID 和所有所属元素
- spring - 原因:java.lang.IllegalStateException:无法加载驱动程序类:org.mariadb.jdbc.Driver - Spring Cloud Data Flow
- jquery - Wordpress wp_enqueue_script() 和页脚中的 jQuery
- android - 如何处理 React Native 底部选项卡中的后退按钮行为?
- sql - 我们可以从分区中删除一些行而不是循环遍历大表的所有记录吗?
- python - 将 Python dict 转换为类 __init__ **kwargs?