重新创建Oracle双表

重新创建Oracle双表,oracle,dual-table,Oracle,Dual Table,有没有办法在Oracle中创建/重新创建双表?它意外掉落。您可能应该与Oracle支持部门联系 你有备份吗?如果是这样,请从备份中还原表。否则(如果您不选择与Oracle联系) Oracle对DUAL进行了特殊的优化,但我不知道表本身是否有什么特殊之处。我会把它当作一张普通的桌子,看看会发生什么。试试这个: 以SYSDBA身份连接,然后执行以下命令: CREATE TABLE SYS.DUAL ( DUMMY VARCHAR2(1 BYTE) ); INSERT INTO SYS.DUA

有没有办法在Oracle中创建/重新创建双表?它意外掉落。

您可能应该与Oracle支持部门联系

你有备份吗?如果是这样,请从备份中还原表。否则(如果您不选择与Oracle联系)

Oracle对DUAL进行了特殊的优化,但我不知道表本身是否有什么特殊之处。我会把它当作一张普通的桌子,看看会发生什么。试试这个:

以SYSDBA身份连接,然后执行以下命令:

CREATE TABLE SYS.DUAL
(
  DUMMY  VARCHAR2(1 BYTE)
);

INSERT INTO SYS.DUAL VALUES ( 'X' );

COMMIT;

GRANT SELECT ON SYS.DUAL TO public WITH GRANT OPTION;

CREATE PUBLIC SYNONYM DUAL FOR SYS.DUAL;
永远不要再更改SYS模式中的任何内容


编辑:刚刚注意到今天的重复:-在此处添加了建议。

双表是系统表空间中的虚拟表。作为一个用户,你没有权利放弃它。如果您的模式中有自己的双表,那么您可以对其进行处理。你可以执行dml,删除它,截断它等等。即使你删除它,你也可以从与以前相同的脚本重新创建它。

如果不小心删除了
DUAL
,Oracle会变得很奇怪

SQLPlus说
SP2-0575:Oracle SQL功能的使用不在SQL92入门级。
如果没有
sys.DUAL
或当前用户没有从中选择的权限

感觉就像oracle根据
DUAL
确定与版本相关的功能一样