其实dual就是sys下的一个表,一点也不神秘
1、创建表(必须以sys登陆后创建)
conn sys/change_on_install
create table dual (dummy  varchar2(1));
2、加入一个记录(dual表中有且只有一条纪录)
insert into dual values ('X');
3、为dual表建立公共同义词
create or replace public synonym dual for dual;
4、授权所有用户访问dual表的权利
grant select on dual to public;

解决方案 »

  1.   

    呵呵...
    很少见到  KingSunSha(弱水三千) 呀~  :-)
      

  2.   

    dual表是系统维护的,是删不掉的,
    SQL> connect sys/sys
    已连接。
    SQL> drop table dual;
    drop table dual
               *
    ERROR 位于第 1 行:
    ORA-00600: 内部错误代码,自变量: [12830], [SYS], [DUAL], [], [], [], [], []
    SQL> create table dual (
      2  dummy varchar2(1));
    create table dual (
                 *
    ERROR 位于第 1 行:
    ORA-00955: 名称已被现有对象占用如果你删掉了名为DUAL的表,那可能是在非SYS schema的dual表,是不会影响sys schema dual表的使用的.
      

  3.   

    呵呵...C:>sqlplus sys/change_on_install
    SQL>drop table dual;           <- (就可以删掉了)
    =====================================================
    建回来就可以了.(就用 大侠的方法吧.)
    C:>sqlplus sys/change_on_install;
    SQL>create table dual (dummy  varchar2(1));
    SQL>insert into dual values ('X');
    SQL>create synonym dual for dual;
    SQL>grant select on dual to public;