posts - 431,  comments - 344,  trackbacks - 0
          原文地址:http://blog.csdn.net/alvenz/archive/2008/12/15/3519532.aspx

          今天登陸到測試環境,在做日常操作時需要使用到dual表,但是在使用了一個查詢語句時(SELECT to_char(current_timestamp) FROM dual)卻提示'ORA-00980: 同義詞轉換不再有效'錯誤,于是開始了這次的分析和恢復.

          一、查找原因

              根據在網上搜索得到的信息判斷可能是同義詞丟失或者是表被刪除,于是進行以下操作以確定問題。

              SELECT * FROM Dba_Objects do WHERE  do.object_type ='TABLE' AND do.object_name = 'DUAL'

              SELECT * FROM Dba_Tables dt WHERE  dt.table_name = 'DUAL'

              SELECT * FROM Dba_Synonyms ds WHERE ds.table_name = 'DUAL'

              根據以上數據字典反饋的信息確定是表被刪除(因為dba_synonyms表中有此記錄,表明同義詞未被刪除)導致此錯誤,決定重建該表。

          二、建表操作

              由于在正式環境中該表存在,故連接到正式環境查看該表結構

              SQL> desc dual;
                   Name  Type        Nullable Default Comments
                   ----- ----------- -------- ------- --------
                   DUMMY VARCHAR2(1) Y                        

              查看建表腳本:

              -- Create table
              create table SYS.DUAL
             (
                DUMMY VARCHAR2(1)
              )
             tablespace SYSTEM
             pctfree 10
             pctused 40
             initrans 1
             maxtrans 255
             storage
             (
              initial 104
              next 104
              minextents 1
              maxextents 505
              pctincrease 100
             );
             -- Grant/Revoke object privileges
            grant select on SYS.DUAL to PUBLIC;

          有了以上內容,可以開始建表了,因為同義詞后面將重新創建,所以可以在建表前刪除,在操作之前使用sys重新登陸

          1、DROP PUBLIC SYNONYM dual;  --刪除同義詞

          2、create table dual
           (dummy varchar2(1))  --創建表

          3、INSERT INTO dual VALUES('X')  --插入值

          4、create public synonym dual for dual  --創建同義詞

          5、grant select on dual to public with grant option  --授權,如果不允許其它人可以將自己的權限傳遞給其他用戶,可以去掉with后面的內容

          6、退出,使用普通用戶登陸,測試dual表是否能正常使用

             select sysdate from dual;

          7、若測試正常則代表dual表已經被重新建立,至此,一次對dual表的恢復完成。

           

          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/alvenz/archive/2008/12/15/3519532.aspx

          posted on 2009-11-10 09:08 周銳 閱讀(2998) 評論(0)  編輯  收藏 所屬分類: Oracle
          主站蜘蛛池模板: 诏安县| 马山县| 兴隆县| 鹤壁市| 德庆县| 饶河县| 兰州市| 慈溪市| 宁化县| 绵阳市| 桂林市| 四会市| 英山县| 新龙县| 六盘水市| 丰原市| 麦盖提县| 崇礼县| 太保市| 那曲县| 随州市| 仪征市| 新晃| 马龙县| 太康县| 南丰县| 明星| 琼结县| 昔阳县| 尼勒克县| 乐山市| 左云县| 松滋市| 孟村| 宁津县| 禄丰县| 秦安县| 商都县| 庄河市| 辰溪县| 茂名市|