有没有办法在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;
如果意外删除了DUAL
,Oracle会变得很奇怪。
如果没有sys.DUAL
或当前用户没有选择它的特权,SQLPlus会显示SP2-0575:使用不在SQL92入门级中的Oracle SQL功能。
感觉Oracle根据DUAL
确定与版本相关的功能。
Dual Table是系统表空间中的虚表。作为用户,您没有权力删除它。如果您在自己的模式中有自己的双重表,您可以玩弄它。您可以执行DML、删除和截断等操作。即使您删除了它,也可以从与以前相同的脚本重新创建它。