Oracle中的dual表恢復

2021-08-30 14:40:47 字數 1736 閱讀 3975

本文內容來至

如果dual表不在了,也可以用下面的方法恢復:(藉此做個記錄)

可以通過執行以下步驟來進行恢復。可以用sys使用者登陸。

sql> create pfile='dualfile.bak' from spfile

sql> shutdown immediate

在dualfile.bak檔案中最後加入一條:replication_dependency_tracking = false

重新啟動資料庫:

sql> startup pfile='dualfile.bak'

sql> create table "sys"."dual"

( "dummy" varchar2(1) )

pctfree 10 pctused 4;

sql> insert into dual values('x');

sql> commit;

sql> grant select on dual to public;

授權成功。

sql> select * from dual;d-

xsql> shutdown immediate

資料庫已經關閉。

已經解除安裝資料庫。

oracle 例程已經關閉。

sql> startup

oracle 例程已經啟動。

dual表給弄壞了,drop操作看來是要用到dual表的,解決的步驟如下(主要是把dual表修復了一下):

1.先建立了乙個自定義的dual表暫時頂替

sys@test>create table my_dual as select dummy from dual;

table created.

sys@test>select * from my_dual;d-

x2.建立臨時dual表的同義詞,並賦給所有使用者select的許可權

sys@test>create public synonym dual for my_dual;

synonym created.

sys@test>grant select on my_dual to public;

grant succeeded.

3.刪除dual表

sys@test>drop table sys.dual;

table dropped.

4.重建dual表

sys@test>create table dual as select * from dual;

table created.

5.刪除在臨時dual表上建立的同義詞

sys@test>drop public synonym  dual;

synonym dropped.

sys@test>select * from dual;d-

x6.建立dual表的同義詞,並賦給所有使用者select的許可權

sys@test>create public synonym dual for sys.dual;

synonym created.

sys@test>grant select on dual to public;

grant succeeded.

刪除表空間沒有問題了

sys@test>drop tablespace temp01 including contents and datafiles;

tablespace dropped.

看樣在dual表在oracle資料庫中還是很重要的

Oracle中dual表的用途

dual是乙個虛擬表,用來構成select的語法規則,oracle保證dual裡面永遠只有一條記錄。我們可以用它來做很多事情,如下 1 檢視當前使用者,可以在 sql plus中執行下面語句 select user from dual 2 用來呼叫系統函式 select to char sysdat...

oracle中dual表的用法

dual是乙個虛擬表,用來構成select的語法規則,oracle保證dual裡面永遠只有一條記錄。我們可以用它來做很多事情,如下 1 檢視當前使用者,可以在 sql plus中執行下面語句 select user from dual 2 用來呼叫系統函式 select to char sysdat...

oracle中奇妙的dual表

dual是乙個虛擬表,用來構成select的語法規則,oracle保證dual裡面永遠只有一條記錄。我們可以用它來做很多事情,如下 1 檢視當前使用者,可以在 sql plus中執行下面語句 select user from dual 2 用來呼叫系統函式 select to char sysdat...