Oracle认证:索引聚簇表加载数据
来源:优易学  2011-11-4 17:13:20   【优易学:中国教育考试门户网】   资料下载   IT书店

 

  三:加载数据。

  向聚簇索引表中加载数据是个很讲究的事情,处理方法不对,会使得聚簇的功能发挥不完全,降低查询性能。

  方法1:

  首先,我增加一个很大的列char(1000),加这个列是为了让EMP行远远大于现在的大小。使得一个1024的聚簇无法存储一行记录。不能加 varchar2(1000),因为ORACLE对varchar2存储的原则是能省就省,如果数据数据不到1000,不会分配1000的空间的。 char则是有多少用多少。呵呵。

  SQL> begin

  2    for x in ( select * from scott.dept )

  3 loop

  4 insert into dept

  5        values ( x.deptno, x.dname, x.loc );

  6 insert into emp

  7 select *

  8          from scott.emp 9         where deptno = x.deptno;

  10 end loop;

  11 end;

  12 /

  begin

  *

  第1行出现错误:

  ORA-02032:聚簇表无法在簇索引建立之前使用

  ORA-06512:在line 4

  SQL> create index emp_dept_cluster_idx

  2 on cluster emp_dept_cluster

  3 ;

  索引已创建。

  SQL> alter table emp disable constraint emp_fk;

  表已更改。

  SQL> truncate cluster emp_dept_cluster;

  簇已截断。

  SQL> alter table emp enable constraint emp_fk;

  表已更改。

  SQL> alter table emp add data char(1000);

  表已更改。

  上面的执行错误说明聚簇表无法在簇索引建立之前使用。

  首先我们通过先加载emp表,后加载dept表的方式。

  SQL> insert into dept

  2  select * from scott.dept;已创建4行。

  SQL> insert into emp

  2  select emp.*, '*' from scott.emp;已创建14行。

上一页  [1] [2] [3] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训