将exp逻辑备份文件导入到备库中时出现了错误,相关错误信息如下:
1.IMP-00017: 由于 Oracle 错误 6550, 以下语句失败:
2. "DECLARE SREC DBMS_STATS.STATREC; BEGIN SREC.MINVAL := '00730068006F0075006"
3. "C0075'; SREC.MAXVAL := '9F9A00200020514B'; SREC.EAVS := 4; SREC.CHVALS := D"
4. "BMS_STATS.CHARARRAY(utl_raw.cast_to_varchar2('00730068006F0075006C0075'),'N"
5. "fS[',utl_raw.cast_to_varchar2('4E5400200020664B'),utl_raw.cast_to_varchar2"
6. "('4ED8002000204FCA'),'N貍*',utl_raw.cast_to_varchar2('4EFB002000205170'),'N"
7. "鸒','O
8.……
9.IMP-00003: 遇到 Oracle 错误 6550
10.ORA-06550: 第 1 行, 第 4836 列:
11.PLS-00103: 出现符号 "朒ag?"在需要下列之一时:
12. ( - + case mod new not
13. null others
14. avg
15. count current exists max min prior sql stddev sum variance
16. execute forall merge time timestamp interval date
17.
18. pipe
19.
20.
这是个很常见的导入警告,通常与数据库/客户端版本有关。比如这里,源数据库和目标数据库版本都是10.2.0.4,但导出的时候使用了10.2.0.1的客户端:
1.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
2.With the Partitioning, Real Application Clusters, OLAP, Data Mining
3.and Real Application Testing options
4.
5.
6.经由常规路径由 EXPORT:V10.02.01 创建的导出文件
在别的项目中,还遇到过从10.2.0.2数据库中导入到10.2.0.4目标库时出现了同样的问题,不管imp/exp使用了什么版本。
解决办法,就是在exp或imp时加上一个参数来禁用统计信息的导出/导入: statistics=none
那么,不导入统计信息会有什么影响呢。其实在Oracle 10g以后,默认定时采集统计信息,可以在dba_scheduler_jobs视图中查询到该任务:GATHER_STATS_JOB。并且可以在dba_scheduler_job_run_details中看到相应的执行情况。
手动采集统计信息:在sys用户中执行dbms_scheduler.run_job('GATHER_STATS_JOB') 存储过程(等价于执行dbms_stats.gather_database_stats_job_proc);使用dbms_stats包中的gather_xxx_stats来采集。停用定时采集统计信息的任务:DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB')
Oracle 10g中修改自动采集统计信息的时间策略:通过sys用户登录执行存储过程dbms_scheduler.set_attribute来修改,例如
dbms_scheduler.set_attribute('GATHER_STATS_JOB','SCHEDULE_NAME','MAINTENANCE_WINDOW_GROUP')
dbms_scheduler.set_attribute('WEEKEND_WINDOW','DURATION','+000 05:00:00')
查询:
1.select d.window_name,d.repeat_interval,d.duration
2.from DBA_SCHEDULER_JOBS a,DBA_SCHEDULER_WINDOW_GROUPS b,DBA_SCHEDULER_WINGROUP_MEMBERS c,DBA_SCHEDULER_WINDOWS d 3.where a.job_name='GATHER_STATS_JOB' 4. and a.schedule_name=b.window_group_name 5. and b.window_group_name=c.window_group_name 6. and c.window_name=d.window_name 7.union all 8.select d.window_name,d.repeat_interval,d.duration 9.from DBA_SCHEDULER_JOBS a,DBA_SCHEDULER_WINDOWS d 10.where a.job_name='GATHER_STATS_JOB' 11. and a.schedule_name=d.window_name;
本文出自:亿恩科技【www.enkj.com】
fS[',utl_raw.cast_to_varchar2('4E5400200020664B'),utl_raw.cast_to_varchar2"
6. "('4ED8002000204FCA'),'N貍*',utl_raw.cast_to_varchar2('4EFB002000205170'),'N"
7. "鸒','O
8.……
9.IMP-00003: 遇到 Oracle 错误 6550
10.ORA-06550: 第 1 行, 第 4836 列:
11.PLS-00103: 出现符号 "朒ag?"在需要下列之一时:
12. ( - + case mod new not
13. null others
14. avg
15. count current exists max min prior sql stddev sum variance
16. execute forall merge time timestamp interval date
17.
18. pipe
19.
20.
这是个很常见的导入警告,通常与数据库/客户端版本有关。比如这里,源数据库和目标数据库版本都是10.2.0.4,但导出的时候使用了10.2.0.1的客户端:
1.连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
2.With the Partitioning, Real Application Clusters, OLAP, Data Mining
3.and Real Application Testing options
4.
5.
6.经由常规路径由 EXPORT:V10.02.01 创建的导出文件
在别的项目中,还遇到过从10.2.0.2数据库中导入到10.2.0.4目标库时出现了同样的问题,不管imp/exp使用了什么版本。
解决办法,就是在exp或imp时加上一个参数来禁用统计信息的导出/导入: statistics=none
那么,不导入统计信息会有什么影响呢。其实在Oracle 10g以后,默认定时采集统计信息,可以在dba_scheduler_jobs视图中查询到该任务:GATHER_STATS_JOB。并且可以在dba_scheduler_job_run_details中看到相应的执行情况。
手动采集统计信息:在sys用户中执行dbms_scheduler.run_job('GATHER_STATS_JOB') 存储过程(等价于执行dbms_stats.gather_database_stats_job_proc);使用dbms_stats包中的gather_xxx_stats来采集。停用定时采集统计信息的任务:DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB')
Oracle 10g中修改自动采集统计信息的时间策略:通过sys用户登录执行存储过程dbms_scheduler.set_attribute来修改,例如
dbms_scheduler.set_attribute('GATHER_STATS_JOB','SCHEDULE_NAME','MAINTENANCE_WINDOW_GROUP')
dbms_scheduler.set_attribute('WEEKEND_WINDOW','DURATION','+000 05:00:00')
查询:
1.select d.window_name,d.repeat_interval,d.duration
2.from DBA_SCHEDULER_JOBS a,DBA_SCHEDULER_WINDOW_GROUPS b,DBA_SCHEDULER_WINGROUP_MEMBERS c,DBA_SCHEDULER_WINDOWS d 3.where a.job_name='GATHER_STATS_JOB' 4. and a.schedule_name=b.window_group_name 5. and b.window_group_name=c.window_group_name 6. and c.window_name=d.window_name 7.union all 8.select d.window_name,d.repeat_interval,d.duration 9.from DBA_SCHEDULER_JOBS a,DBA_SCHEDULER_WINDOWS d 10.where a.job_name='GATHER_STATS_JOB' 11. and a.schedule_name=d.window_name;
本文出自:亿恩科技【www.enidc.com】
-->