且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

关于dual表的问题!

更新时间:2022-04-20 06:09:25

起因 向dual表中插入数据。出现如下错误.删除dual之后,问题依然存在!

参考我的帖子:http://www.itpub.net/thread-1321516-1-1.html

SQL> select * from dual;
D                                                                              
-                                                                              
Y                                                                              
SQL> drop table yang purge;
drop table yang purge
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01422: 实际返回的行数超出请求的行数

SQL> delete dual;
已删除 1 行。
SQL> commit;
提交完成。
SQL> select * from dual;
D                                                                              
-                                                                              
Y                                                                              
SQL>
SQL> select count(*) from dual;
  COUNT(*)                                                                     
----------                                                                     
         1                                                                     
SQL> begin
  2  for i in (select * from dual) loop
  3  dbms_output.put_line(i.dummy);
  4  end loop;
  5  end;
  6  /--------------没有结果输出!

PL/SQL 过程已成功完成。
SQL> rollback;
回退已完成。
问题未解决。。。。

总结:

1 这个表永远只有一条记录、
2 很多DDL操作将会报错,别动他..
3 记得删除你插入的记录,否则exp、expdp以及很多的PL/SQL包都会报错

别没事玩这个表,这个表一次delete只会删除一行,oracle中很多操作都校验这个表,行数多了会抛错