select * from dual;出来4个ADDR INDX INST_ID DUMMY 
0366CD54 0 1 X 

解决方案 »

  1.   

    正常的,dual本来就是oracle的一个虚表select sysdate from dual;
      

  2.   

    有意思
    如果想恢复原状的话登录sys
    alter table dual drop  (ADDR ,INDX, INST_ID)
      

  3.   

    不能删除sys表的列
    这下我的dual也见鬼了``
      

  4.   

    多数是改过DUAL表了,这个表不建议去修改
    会引发错误的
      

  5.   

    转TIRI兄弟博客里的解决办法:3、如果DUAL表被“不幸”删除后的恢复:
    用sys用户登陆。
    创建DUAL表。
    授予公众SELECT权限(SQL如上述,但不要给UPDATE,INSERT,DELETE权限)。
    向DUAL表插入一条记录(仅此一条): insert into dual values(''X'');
    提交修改。
    具体操作:
    --用sys用户登陆。
    SQL> create pfile=’d:\pfile.bak’ from spfile
    SQL> shutdown immediate
    --在d:\pfile.bak文件中最后加入一条:replication_dependency_tracking = FALSE
    --重新启动数据库:
    SQL> startup pfile=’d:\pfile.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 例程已经启动。Total System Global Area 135338868 bytes
    Fixed Size 453492 bytes
    Variable Size 109051904 bytes
    Database Buffers 25165824 bytes
    Redo Buffers 667648 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL>--OK, 下面就可以正常使用了
    本文来自CSDN博客,转载请标明出处:tianlesoftware博客
      

  6.   

    哪些操作有可能修改dual表的内容呢?
      

  7.   

    http://blog.csdn.net/wh62592855/archive/2009/11/03/4764961.aspxDUAL表详解 
    楼主可以参考一下
    不过你是多个列哦 
    呵呵 还不是多个行
      

  8.   

    dual表是一个虚表,是可以修改结构的,如下:SQL> conn sys/asiainfo as sysdba
    已连接。
    SQL> select * from dual;D
    -
    XSQL> desc dual;
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ----------------------------
     DUMMY                                              VARCHAR2(1)SQL> alter table dual add id number;表已更改。SQL> desc dual;
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ----------------------------
     DUMMY                                              VARCHAR2(1)
     ID                                                 NUMBERSQL> 但是这个表 不能没有,如果没有的话,启动数据库就会报错的
      

  9.   

    dual 不是虚表吧,要不怎么能改呢。 只是这个表有点特殊而已
      

  10.   

    dual是oracle数据库默认提供的一个一行一列的数据库空表,常常用来使用一些oracle函数,如:select   sysdate   from   dual;