首页 > 其他 > 详细

创建一个很大的EMP表 EMP_LARGE

时间:2017-09-10 00:56:19      阅读:386      评论:0      收藏:0      [点我收藏+]
--CREATE TABLE EMP_LARGE AS SELECT * FROM EMP ; ---先复制一张EMP表
DECLARE  --声明变量
  v_loop NUMBER;  
  v_num NUMBER;
  too_large EXCEPTION;
BEGIN  --开始执行
  FOR v_loop IN 1 .. 100 LOOP  --EMP开始是14条,14*2^100应该是很大的数了吧 
    SELECT COUNT(*) INTO v_num FROM emp_large;
    IF 
      v_num <= 1000000   ---输入你喜欢的行数
      THEN 
    INSERT INTO emp_large
      (empno, ename, job, mgr, hiredate, sal, comm, deptno)
    
      SELECT empno, ename, job, mgr, hiredate, sal, comm, deptno
        FROM emp_large;

  END IF;
  END LOOP;
  COMMIT;
  --如果大于指定数量,则删除多余的(排序不严谨,随机删除)
  IF v_num > 1000000 
    THEN RAISE too_large;  --抛异常
  END IF ;
      
  EXCEPTION  ---异常处理
     WHEN too_large --异常名称
       THEN 
         --删除多余的
         DELETE FROM emp_large WHERE ROWID IN ( 
 SELECT rd FROM (SELECT ROWNUM rn,ROWID RD FROM emp_large) WHERE 
 rn>1000000 ) ;
 
  COMMIT;
   SELECT COUNT(*) INTO v_num FROM emp_large;  ---重新输入数量显示
  dbms_output.put_line(运行成功,表emp_large的行数为:||v_num);

  WHEN OTHERS
    then
     dbms_output.put_line(执行失败);
    
 END;

 

创建一个很大的EMP表 EMP_LARGE

原文:http://www.cnblogs.com/yhoralce/p/7499892.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!