无法删除 Oracle 中的还原点

Posted

技术标签:

【中文标题】无法删除 Oracle 中的还原点【英文标题】:Unable to delete restore point in Oracle 【发布时间】:2021-07-14 17:04:08 【问题描述】:

有人(不是我)创建了许多名称包含连字符的还原点。例如 restore_point-001。

当我尝试使用 Drop Restore Point 删除还原点时,会出现 sql 命令错误,提示它未正确结束。我尝试将名称放在单引号中,并尝试重命名,但 v$restorepoint 不允许这样做。

有没有办法删除以这种方式命名的还原点?

【问题讨论】:

你使用了什么 SQL 命令? 【参考方案1】:

我已尝试将名称放在 单引号 ...

我不是 DBA,但你的描述让我想起了这一点:

让我们尝试创建一个,其名称包含一个“减号”(就像您的还原点一样):

SQL> create table restore_point-001 (id number);
create table restore_point-001 (id number)
                          *
ERROR at line 1:
ORA-00922: missing or invalid option

不,它不会工作。您说您将名称括在单引号中:

SQL> create table 'restore_point-001' (id number);
create table 'restore_point-001' (id number)
             *
ERROR at line 1:
ORA-00903: invalid table name


SQL>

不,它不是 字符串字面量

那么,让我们试试双引号

SQL> create table "restore_point-001" (id number);

Table created.

哈!有用!现在让我们删除它:不带任何引号:

SQL> drop table restore_point-001;
drop table restore_point-001
                        *
ERROR at line 1:
ORA-00933: SQL command not properly ended

单引号:

SQL> drop 'table restore_point-001';
drop 'table restore_point-001'
     *
ERROR at line 1:
ORA-00950: invalid DROP option

双引号

SQL> drop table "restore_point-001";

Table dropped.

SQL>

所以,是的 - 我不知道为什么人们坚持使用“无效”字符以及 -001_001 有什么好处,但是 - 如果我是你,我会尝试

drop restorepoint "restore_point-001";

看看会发生什么。

【讨论】:

以上是关于无法删除 Oracle 中的还原点的主要内容,如果未能解决你的问题,请参考以下文章

电脑C盘中,我删除程序时,出现无法删除,访问被拒绝现象,问,如何解决?

oracle恢复误删除数据

无法使用 ORACLE APEX 删除交互式报表中的行

关于电脑板微信浏览器无法刷新

SQL数据库如何还原

因为数据库正在使用,所以无法获得对数据库的独占访问权---还原或删除数据库的解决方法