无法删除 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 中的还原点的主要内容,如果未能解决你的问题,请参考以下文章