oracle ora-00003错误解决办法


 现象描述:

        oracle数据库从客户端导出服务器端某个表,产生ora-00003错误;从服务器端本机导出时,发生ora-00091错误。

        原因分析:

        现象1:用9205以前的版本导出其后版本的表,且此表中有带LOB字段时,也会出现exp-00003错误。

        现象2:oracle用户的环境变量语言集和oralce数据库中的环境变量语言集不相同。

        临时解决方案:

        现象1:使用9205以上的版本进行导出。

        永久解决方案:

        现象1:更改数据库服务器端的oracle系统视图EXU9TNE的定义,该视图定义为: $cat $ORACLE_HOME/rdbms/admin/catexp.sql          CREATE OR REPLACE VIEW EXU9TNE
        (tsno, fileno, blockno, length)
        AS
        SELECT  ts#, segfile#, segblock#, length
                FROM    sys.uet$
                WHERE   ext# = 1


        以sys用户登录数据库服务器重新建立该视图:          CREATE OR REPLACE VIEW EXU9TNE
        (tsno, fileno, blockno, length)
        AS
        SELECT  ts#, segfile#, segblock#, length
        FROM    sys.uet$
        WHERE   ext# = 1
        UNION ALL select * from sys.exu9tneb


        注意:不要随意改动Oracle系统视图,执行完后,应立刻恢复。切记!!

        现象2:

        查看oracle的环境变量语言集:

        a、数据库服务器字符集:

        select * from nls_database_parameters

        b、客户端字符集:

        select * from nls_instance_parameters

        c、将oracle用户的环境变量(.profile文件或.cshrc文件)字符集改成和数据库服务器字符集一样。

        通常我们设定为:chinese_china.ZHS16GBK

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3