oracle批量循环执行sql,EXP-00003: 未找到段 (0,0) 的存储定义
2015-04-16 18:13
441 查看
exp导出表有警告,EXP-00003: 未找到段 (0,0) 的存储定义。发现报错的都是带有表分区的表。
搜索一下,有说索引是小写,有说表里没有数据的,有说执行alter system set deferred_segment_creation=false;
还有说执行 alter table TabelName allocate extent 命令的。
搜索alter system set deferred_segment_creation=false; 该参数意思是当创建对象(如表),初始没有数据,是否立即创建segment。默认是true。这会导致在exp时,没有segment的对象不会导出。
但此命令只对以后的表有效,之前的表没有Segment的还是没有。可以创建表的时候声明立即创建Segment ,create
table XXX (XXX XXX) SEGMENT CREATION IMMEDIATE;
对于已经创建但是还没有Segment的表来说,可以执行alter table TabelName allocate
extent来使其创建出Segment,当然也可以插入一条数据,使其创建Segment .
给所有表增加Segment,如下:
declare
-- Local variables here
i 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;
搜索一下,有说索引是小写,有说表里没有数据的,有说执行alter system set deferred_segment_creation=false;
还有说执行 alter table TabelName allocate extent 命令的。
搜索alter system set deferred_segment_creation=false; 该参数意思是当创建对象(如表),初始没有数据,是否立即创建segment。默认是true。这会导致在exp时,没有segment的对象不会导出。
但此命令只对以后的表有效,之前的表没有Segment的还是没有。可以创建表的时候声明立即创建Segment ,create
table XXX (XXX XXX) SEGMENT CREATION IMMEDIATE;
对于已经创建但是还没有Segment的表来说,可以执行alter table TabelName allocate
extent来使其创建出Segment,当然也可以插入一条数据,使其创建Segment .
给所有表增加Segment,如下:
declare
-- Local variables here
i 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;
相关文章推荐
- Oracle 11G 出现EXP-00003: 未找到段 (0,0) 的存储定义
- [转]ORACLE 11G 导出报错(EXP-00003)未找到段 (0,0) 的存储定义
- oracle 导出EXP-00003: 未找到段 (5,38467) 的存储定义的解决方法
- ORACLE EXP-00003: 未找到段 (****) 的存储定义
- ORACLE EXP-00003: 未找到段 (****) 的存储定义
- Oracle 11G 出现EXP-00003: 未找到段 (0,0) 的存储定义
- oracle exp EXP-00003: 未找到段 (12,11) 的存储定义
- ORACLE EXP-00003: 未找到段 (4,131) 的存储定义
- ORACLE EXP-00003: 未找到段(……) 的存储定义
- ORACLE 11G 导出报错(EXP-00003)未找到段 (0,0) 的存储定义
- Oracle 9i exp导出10g R2出现错误:EXP-00003: 未找到段 (4,131) 的存储定义
- oracle导出数据库中表出现导出报错(EXP-00003)未找到段 (0,0) 的存储定义
- EXP-00003: 未找到段 (4,571) 的存储定义
- EXP-00003: 未找到段 (11,419) 的存储定义解决方法
- EXP-00003: 未找到段 (xxxxx) 的存储定义
- EXP-00003: 未找到段 (0,0) 的存储定义
- 11G exp 分区表报错 EXP-00003: 未找到段 (0,0) 的存储定义
- oracle11g 数据库导出报“ EXP-00003: 未找到段 (0,0) 的存储定义”错误的解决方案
- oracle11g 数据库导出报“ EXP-00003: 未找到段 (0,0) 的存储定义”错误的解决方案
- Orale11g EXP-00003: 未找到段 (0,0) 的存储定义解决