还有说执行
但此命令只对以后的表有效,之前的表没有Segment的还是没有。可以创建表的时候声明立即创建Segment ,create
table XXX (XXX
对于已经创建但是还没有Segment的表来说,可以执行alter table TabelName allocate
extent来使其创建出Segment,当然也可以插入一条数据,使其创建Segment .
给所有表增加Segment,如下:
declare
-- Local variables herei number;
cou number;
nam VARCHAR2 (200);
strSQL VARCHAR2 (600);
begin
i:=0;
loop
i:=i+1;
strSQL:= 'select count(*) from user_tables';
EXECUTE IMMEDIATE strSQL into cou ;
strSQL:= 'select table_name from (select rownum as rown,table_name from user_tables) where rown =' || i;
EXECUTE IMMEDIATE strSQL into nam ;
strSQL:='alter table '|| nam ||' allocate extent';
EXECUTE IMMEDIATE strSQL;
commit;
if i>cou-1 then
exit;
end if;
end loop;
end;