有没有办法在 Oracle 中创建/重新创建双表?它不小心掉了下来。
问问题
2947 次
3 回答
5
您可能应该联系 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 模式中的任何内容!
编辑:刚刚注意到今天的重复:https ://stackoverflow.com/questions/2816478/recovering-dual-table-in-oracle - 在此处添加了建议。
于 2010-05-12T18:28:33.683 回答
0
DUAL
如果意外掉落,Oracle 会变得很奇怪。
SQLPlus 表示SP2-0575: Use of Oracle SQL feature not in SQL92 Entry Level.
如果没有sys.DUAL
或当前用户没有从中选择的权限。
感觉就像 oracle 根据DUAL
.
于 2020-03-18T15:28:23.457 回答
-1
Dual Table 是系统表空间中的虚拟表。作为用户,你没有权利放弃它。如果您的架构中有自己的双表,您可以使用它。你可以执行 dml、删除它、截断它等。即使你删除了,你也可以从与以前相同的脚本中重新创建它。
于 2010-06-01T04:53:19.857 回答